Back to home page

OSCL-LXR

 
 

    


0001 /* SPDX-License-Identifier: GPL-2.0-only */
0002 /*
0003  * arch/arm/probes/kprobes/checkers.h
0004  *
0005  * Copyright (C) 2014 Huawei Inc.
0006  */
0007 #ifndef _ARM_KERNEL_PROBES_CHECKERS_H
0008 #define _ARM_KERNEL_PROBES_CHECKERS_H
0009 
0010 #include <linux/kernel.h>
0011 #include <linux/types.h>
0012 #include "../decode.h"
0013 
0014 extern probes_check_t checker_stack_use_none;
0015 extern probes_check_t checker_stack_use_unknown;
0016 #ifdef CONFIG_THUMB2_KERNEL
0017 extern probes_check_t checker_stack_use_imm_0xx;
0018 #else
0019 extern probes_check_t checker_stack_use_imm_x0x;
0020 #endif
0021 extern probes_check_t checker_stack_use_imm_xxx;
0022 extern probes_check_t checker_stack_use_stmdx;
0023 
0024 enum {
0025     STACK_USE_NONE,
0026     STACK_USE_UNKNOWN,
0027 #ifdef CONFIG_THUMB2_KERNEL
0028     STACK_USE_FIXED_0XX,
0029     STACK_USE_T32STRD,
0030 #else
0031     STACK_USE_FIXED_X0X,
0032 #endif
0033     STACK_USE_FIXED_XXX,
0034     STACK_USE_STMDX,
0035     NUM_STACK_USE_TYPES
0036 };
0037 
0038 extern const union decode_action stack_check_actions[];
0039 
0040 #ifndef CONFIG_THUMB2_KERNEL
0041 extern const struct decode_checker arm_stack_checker[];
0042 extern const struct decode_checker arm_regs_checker[];
0043 #else
0044 #endif
0045 extern const struct decode_checker t32_stack_checker[];
0046 extern const struct decode_checker t16_stack_checker[];
0047 #endif