xref: /openbmc/linux/arch/arm/probes/kprobes/checkers.h (revision 1802d0be)
11802d0beSThomas Gleixner /* SPDX-License-Identifier: GPL-2.0-only */
26624cf65SWang Nan /*
36624cf65SWang Nan  * arch/arm/probes/kprobes/checkers.h
46624cf65SWang Nan  *
56624cf65SWang Nan  * Copyright (C) 2014 Huawei Inc.
66624cf65SWang Nan  */
76624cf65SWang Nan #ifndef _ARM_KERNEL_PROBES_CHECKERS_H
86624cf65SWang Nan #define _ARM_KERNEL_PROBES_CHECKERS_H
96624cf65SWang Nan 
106624cf65SWang Nan #include <linux/kernel.h>
116624cf65SWang Nan #include <linux/types.h>
126624cf65SWang Nan #include "../decode.h"
136624cf65SWang Nan 
146624cf65SWang Nan extern probes_check_t checker_stack_use_none;
156624cf65SWang Nan extern probes_check_t checker_stack_use_unknown;
166624cf65SWang Nan #ifdef CONFIG_THUMB2_KERNEL
176624cf65SWang Nan extern probes_check_t checker_stack_use_imm_0xx;
186624cf65SWang Nan #else
196624cf65SWang Nan extern probes_check_t checker_stack_use_imm_x0x;
206624cf65SWang Nan #endif
216624cf65SWang Nan extern probes_check_t checker_stack_use_imm_xxx;
226624cf65SWang Nan extern probes_check_t checker_stack_use_stmdx;
236624cf65SWang Nan 
246624cf65SWang Nan enum {
256624cf65SWang Nan 	STACK_USE_NONE,
266624cf65SWang Nan 	STACK_USE_UNKNOWN,
276624cf65SWang Nan #ifdef CONFIG_THUMB2_KERNEL
286624cf65SWang Nan 	STACK_USE_FIXED_0XX,
296624cf65SWang Nan 	STACK_USE_T32STRD,
306624cf65SWang Nan #else
316624cf65SWang Nan 	STACK_USE_FIXED_X0X,
326624cf65SWang Nan #endif
336624cf65SWang Nan 	STACK_USE_FIXED_XXX,
346624cf65SWang Nan 	STACK_USE_STMDX,
356624cf65SWang Nan 	NUM_STACK_USE_TYPES
366624cf65SWang Nan };
376624cf65SWang Nan 
386624cf65SWang Nan extern const union decode_action stack_check_actions[];
396624cf65SWang Nan 
406624cf65SWang Nan #ifndef CONFIG_THUMB2_KERNEL
416624cf65SWang Nan extern const struct decode_checker arm_stack_checker[];
4228a1899dSWang Nan extern const struct decode_checker arm_regs_checker[];
436624cf65SWang Nan #else
446624cf65SWang Nan #endif
456624cf65SWang Nan extern const struct decode_checker t32_stack_checker[];
466624cf65SWang Nan extern const struct decode_checker t16_stack_checker[];
476624cf65SWang Nan #endif
48