mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2026-08-29 13:57:58 -04:00
Prepare for GCS by breaking RET out into its own function, where it makes more sense to encapsulate the new behavior independent from the branch instructions. Signed-off-by: Jeremy Linton <jeremy.linton@arm.com> Reviewed-by: Catalin Marinas <catalin.marinas@arm.com> Signed-off-by: Will Deacon <will@kernel.org>
23 lines
955 B
C
23 lines
955 B
C
/* SPDX-License-Identifier: GPL-2.0-only */
|
|
/*
|
|
* arch/arm64/kernel/probes/simulate-insn.h
|
|
*
|
|
* Copyright (C) 2013 Linaro Limited
|
|
*/
|
|
|
|
#ifndef _ARM_KERNEL_KPROBES_SIMULATE_INSN_H
|
|
#define _ARM_KERNEL_KPROBES_SIMULATE_INSN_H
|
|
|
|
void simulate_adr_adrp(u32 opcode, long addr, struct pt_regs *regs);
|
|
void simulate_b_bl(u32 opcode, long addr, struct pt_regs *regs);
|
|
void simulate_b_cond(u32 opcode, long addr, struct pt_regs *regs);
|
|
void simulate_br_blr(u32 opcode, long addr, struct pt_regs *regs);
|
|
void simulate_ret(u32 opcode, long addr, struct pt_regs *regs);
|
|
void simulate_cbz_cbnz(u32 opcode, long addr, struct pt_regs *regs);
|
|
void simulate_tbz_tbnz(u32 opcode, long addr, struct pt_regs *regs);
|
|
void simulate_ldr_literal(u32 opcode, long addr, struct pt_regs *regs);
|
|
void simulate_ldrsw_literal(u32 opcode, long addr, struct pt_regs *regs);
|
|
void simulate_nop(u32 opcode, long addr, struct pt_regs *regs);
|
|
|
|
#endif /* _ARM_KERNEL_KPROBES_SIMULATE_INSN_H */
|