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