1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47
/* SPDX-License-Identifier: GPL-2.0-only */ /* * arch/arm/probes/kprobes/checkers.h * * Copyright (C) 2014 Huawei Inc. */ #ifndef _ARM_KERNEL_PROBES_CHECKERS_H #define _ARM_KERNEL_PROBES_CHECKERS_H #include <linux/kernel.h> #include <linux/types.h> #include "../decode.h" extern probes_check_t checker_stack_use_none; extern probes_check_t checker_stack_use_unknown; #ifdef CONFIG_THUMB2_KERNEL extern probes_check_t checker_stack_use_imm_0xx; #else extern probes_check_t checker_stack_use_imm_x0x; #endif extern probes_check_t checker_stack_use_imm_xxx; extern probes_check_t checker_stack_use_stmdx; enum { STACK_USE_NONE, STACK_USE_UNKNOWN, #ifdef CONFIG_THUMB2_KERNEL STACK_USE_FIXED_0XX, STACK_USE_T32STRD, #else STACK_USE_FIXED_X0X, #endif STACK_USE_FIXED_XXX, STACK_USE_STMDX, NUM_STACK_USE_TYPES }; extern const union decode_action stack_check_actions[]; #ifndef CONFIG_THUMB2_KERNEL extern const struct decode_checker arm_stack_checker[]; extern const struct decode_checker arm_regs_checker[]; #else #endif extern const struct decode_checker t32_stack_checker[]; extern const struct decode_checker t16_stack_checker[]; #endif