1
2
3
4
5
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
14 extern probes_check_t checker_stack_use_none;
15 extern probes_check_t checker_stack_use_unknown;
16 #ifdef CONFIG_THUMB2_KERNEL
17 extern probes_check_t checker_stack_use_imm_0xx;
18 #else
19 extern probes_check_t checker_stack_use_imm_x0x;
20 #endif
21 extern probes_check_t checker_stack_use_imm_xxx;
22 extern probes_check_t checker_stack_use_stmdx;
23
24 enum {
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
38 extern const union decode_action stack_check_actions[];
39
40 #ifndef CONFIG_THUMB2_KERNEL
41 extern const struct decode_checker arm_stack_checker[];
42 extern const struct decode_checker arm_regs_checker[];
43 #else
44 #endif
45 extern const struct decode_checker t32_stack_checker[];
46 extern const struct decode_checker t16_stack_checker[];
47 #endif