core.h (1473B)
1/* SPDX-License-Identifier: GPL-2.0-only */ 2/* 3 * arch/arm/kernel/kprobes.h 4 * 5 * Copyright (C) 2011 Jon Medhurst <tixy@yxit.co.uk>. 6 * 7 * Some contents moved here from arch/arm/include/asm/kprobes.h which is 8 * Copyright (C) 2006, 2007 Motorola Inc. 9 */ 10 11#ifndef _ARM_KERNEL_KPROBES_H 12#define _ARM_KERNEL_KPROBES_H 13 14#include <asm/kprobes.h> 15#include "../decode.h" 16 17/* 18 * These undefined instructions must be unique and 19 * reserved solely for kprobes' use. 20 */ 21#define KPROBE_ARM_BREAKPOINT_INSTRUCTION 0x07f001f8 22#define KPROBE_THUMB16_BREAKPOINT_INSTRUCTION 0xde18 23#define KPROBE_THUMB32_BREAKPOINT_INSTRUCTION 0xf7f0a018 24 25extern void kprobes_remove_breakpoint(void *addr, unsigned int insn); 26 27enum probes_insn __kprobes 28kprobe_decode_ldmstm(kprobe_opcode_t insn, struct arch_probes_insn *asi, 29 const struct decode_header *h); 30 31typedef enum probes_insn (kprobe_decode_insn_t)(probes_opcode_t, 32 struct arch_probes_insn *, 33 bool, 34 const union decode_action *, 35 const struct decode_checker *[]); 36 37#ifdef CONFIG_THUMB2_KERNEL 38 39extern const union decode_action kprobes_t32_actions[]; 40extern const union decode_action kprobes_t16_actions[]; 41extern const struct decode_checker *kprobes_t32_checkers[]; 42extern const struct decode_checker *kprobes_t16_checkers[]; 43#else /* !CONFIG_THUMB2_KERNEL */ 44 45extern const union decode_action kprobes_arm_actions[]; 46extern const struct decode_checker *kprobes_arm_checkers[]; 47 48#endif 49 50#endif /* _ARM_KERNEL_KPROBES_H */