Linux 4.1.18
[linux/fpc-iii.git] / arch / arm / probes / kprobes / checkers.h
blobcf6c9e74d66632de5c5c1d1901709ddeb512f412
1 /*
2 * arch/arm/probes/kprobes/checkers.h
4 * Copyright (C) 2014 Huawei Inc.
6 * This program is free software; you can redistribute it and/or modify
7 * it under the terms of the GNU General Public License version 2 as
8 * published by the Free Software Foundation.
10 * This program is distributed in the hope that it will be useful,
11 * but WITHOUT ANY WARRANTY; without even the implied warranty of
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13 * General Public License for more details.
15 #ifndef _ARM_KERNEL_PROBES_CHECKERS_H
16 #define _ARM_KERNEL_PROBES_CHECKERS_H
18 #include <linux/kernel.h>
19 #include <linux/types.h>
20 #include "../decode.h"
22 extern probes_check_t checker_stack_use_none;
23 extern probes_check_t checker_stack_use_unknown;
24 #ifdef CONFIG_THUMB2_KERNEL
25 extern probes_check_t checker_stack_use_imm_0xx;
26 #else
27 extern probes_check_t checker_stack_use_imm_x0x;
28 #endif
29 extern probes_check_t checker_stack_use_imm_xxx;
30 extern probes_check_t checker_stack_use_stmdx;
32 enum {
33 STACK_USE_NONE,
34 STACK_USE_UNKNOWN,
35 #ifdef CONFIG_THUMB2_KERNEL
36 STACK_USE_FIXED_0XX,
37 STACK_USE_T32STRD,
38 #else
39 STACK_USE_FIXED_X0X,
40 #endif
41 STACK_USE_FIXED_XXX,
42 STACK_USE_STMDX,
43 NUM_STACK_USE_TYPES
46 extern const union decode_action stack_check_actions[];
48 #ifndef CONFIG_THUMB2_KERNEL
49 extern const struct decode_checker arm_stack_checker[];
50 extern const struct decode_checker arm_regs_checker[];
51 #else
52 #endif
53 extern const struct decode_checker t32_stack_checker[];
54 extern const struct decode_checker t16_stack_checker[];
55 #endif