162306a36Sopenharmony_ci/* SPDX-License-Identifier: GPL-2.0 */ 262306a36Sopenharmony_ci 362306a36Sopenharmony_ci#ifndef __ASM_CSKY_PROBES_H 462306a36Sopenharmony_ci#define __ASM_CSKY_PROBES_H 562306a36Sopenharmony_ci 662306a36Sopenharmony_citypedef u32 probe_opcode_t; 762306a36Sopenharmony_citypedef void (probes_handler_t) (u32 opcode, long addr, struct pt_regs *); 862306a36Sopenharmony_ci 962306a36Sopenharmony_ci/* architecture specific copy of original instruction */ 1062306a36Sopenharmony_cistruct arch_probe_insn { 1162306a36Sopenharmony_ci probe_opcode_t *insn; 1262306a36Sopenharmony_ci probes_handler_t *handler; 1362306a36Sopenharmony_ci /* restore address after simulation */ 1462306a36Sopenharmony_ci unsigned long restore; 1562306a36Sopenharmony_ci}; 1662306a36Sopenharmony_ci 1762306a36Sopenharmony_ci#ifdef CONFIG_KPROBES 1862306a36Sopenharmony_citypedef u32 kprobe_opcode_t; 1962306a36Sopenharmony_cistruct arch_specific_insn { 2062306a36Sopenharmony_ci struct arch_probe_insn api; 2162306a36Sopenharmony_ci}; 2262306a36Sopenharmony_ci#endif 2362306a36Sopenharmony_ci 2462306a36Sopenharmony_ci#endif /* __ASM_CSKY_PROBES_H */ 25