mirror of
https://mirrors.bfsu.edu.cn/git/linux.git
synced 2024-12-17 07:54:54 +08:00
1802d0beec
Based on 1 normalized pattern(s): this program is free software you can redistribute it and or modify it under the terms of the gnu general public license version 2 as published by the free software foundation this program is distributed in the hope that it will be useful but without any warranty without even the implied warranty of merchantability or fitness for a particular purpose see the gnu general public license for more details extracted by the scancode license scanner the SPDX license identifier GPL-2.0-only has been chosen to replace the boilerplate/reference in 655 file(s). Signed-off-by: Thomas Gleixner <tglx@linutronix.de> Reviewed-by: Allison Randal <allison@lohutok.net> Reviewed-by: Kate Stewart <kstewart@linuxfoundation.org> Reviewed-by: Richard Fontana <rfontana@redhat.com> Cc: linux-spdx@vger.kernel.org Link: https://lkml.kernel.org/r/20190527070034.575739538@linutronix.de Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
50 lines
1.3 KiB
C
50 lines
1.3 KiB
C
/* SPDX-License-Identifier: GPL-2.0-only */
|
|
/*
|
|
* arch/arm/include/asm/probes.h
|
|
*
|
|
* Original contents copied from arch/arm/include/asm/kprobes.h
|
|
* which contains the following notice...
|
|
*
|
|
* Copyright (C) 2006, 2007 Motorola Inc.
|
|
*/
|
|
|
|
#ifndef _ASM_PROBES_H
|
|
#define _ASM_PROBES_H
|
|
|
|
#ifndef __ASSEMBLY__
|
|
|
|
typedef u32 probes_opcode_t;
|
|
|
|
struct arch_probes_insn;
|
|
typedef void (probes_insn_handler_t)(probes_opcode_t,
|
|
struct arch_probes_insn *,
|
|
struct pt_regs *);
|
|
typedef unsigned long (probes_check_cc)(unsigned long);
|
|
typedef void (probes_insn_singlestep_t)(probes_opcode_t,
|
|
struct arch_probes_insn *,
|
|
struct pt_regs *);
|
|
typedef void (probes_insn_fn_t)(void);
|
|
|
|
/* Architecture specific copy of original instruction. */
|
|
struct arch_probes_insn {
|
|
probes_opcode_t *insn;
|
|
probes_insn_handler_t *insn_handler;
|
|
probes_check_cc *insn_check_cc;
|
|
probes_insn_singlestep_t *insn_singlestep;
|
|
probes_insn_fn_t *insn_fn;
|
|
int stack_space;
|
|
unsigned long register_usage_flags;
|
|
bool kprobe_direct_exec;
|
|
};
|
|
|
|
#endif /* __ASSEMBLY__ */
|
|
|
|
/*
|
|
* We assume one instruction can consume at most 64 bytes stack, which is
|
|
* 'push {r0-r15}'. Instructions consume more or unknown stack space like
|
|
* 'str r0, [sp, #-80]' and 'str r0, [sp, r1]' should be prohibit to probe.
|
|
*/
|
|
#define MAX_STACK_SIZE 64
|
|
|
|
#endif
|