1*39a67d49SSandeepa Prabhu /* 2*39a67d49SSandeepa Prabhu * arch/arm64/kernel/probes/simulate-insn.h 3*39a67d49SSandeepa Prabhu * 4*39a67d49SSandeepa Prabhu * Copyright (C) 2013 Linaro Limited 5*39a67d49SSandeepa Prabhu * 6*39a67d49SSandeepa Prabhu * This program is free software; you can redistribute it and/or modify 7*39a67d49SSandeepa Prabhu * it under the terms of the GNU General Public License version 2 as 8*39a67d49SSandeepa Prabhu * published by the Free Software Foundation. 9*39a67d49SSandeepa Prabhu * 10*39a67d49SSandeepa Prabhu * This program is distributed in the hope that it will be useful, 11*39a67d49SSandeepa Prabhu * but WITHOUT ANY WARRANTY; without even the implied warranty of 12*39a67d49SSandeepa Prabhu * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 13*39a67d49SSandeepa Prabhu * General Public License for more details. 14*39a67d49SSandeepa Prabhu */ 15*39a67d49SSandeepa Prabhu 16*39a67d49SSandeepa Prabhu #ifndef _ARM_KERNEL_KPROBES_SIMULATE_INSN_H 17*39a67d49SSandeepa Prabhu #define _ARM_KERNEL_KPROBES_SIMULATE_INSN_H 18*39a67d49SSandeepa Prabhu 19*39a67d49SSandeepa Prabhu void simulate_adr_adrp(u32 opcode, long addr, struct pt_regs *regs); 20*39a67d49SSandeepa Prabhu void simulate_b_bl(u32 opcode, long addr, struct pt_regs *regs); 21*39a67d49SSandeepa Prabhu void simulate_b_cond(u32 opcode, long addr, struct pt_regs *regs); 22*39a67d49SSandeepa Prabhu void simulate_br_blr_ret(u32 opcode, long addr, struct pt_regs *regs); 23*39a67d49SSandeepa Prabhu void simulate_cbz_cbnz(u32 opcode, long addr, struct pt_regs *regs); 24*39a67d49SSandeepa Prabhu void simulate_tbz_tbnz(u32 opcode, long addr, struct pt_regs *regs); 25*39a67d49SSandeepa Prabhu void simulate_ldr_literal(u32 opcode, long addr, struct pt_regs *regs); 26*39a67d49SSandeepa Prabhu void simulate_ldrsw_literal(u32 opcode, long addr, struct pt_regs *regs); 27*39a67d49SSandeepa Prabhu 28*39a67d49SSandeepa Prabhu #endif /* _ARM_KERNEL_KPROBES_SIMULATE_INSN_H */ 29