~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

TOMOYO Linux Cross Reference
Linux/arch/s390/include/asm/kprobes.h

Version: ~ [ linux-6.4-rc3 ] ~ [ linux-6.3.4 ] ~ [ linux-6.2.16 ] ~ [ linux-6.1.30 ] ~ [ linux-6.0.19 ] ~ [ linux-5.19.17 ] ~ [ linux-5.18.19 ] ~ [ linux-5.17.15 ] ~ [ linux-5.16.20 ] ~ [ linux-5.15.113 ] ~ [ linux-5.14.21 ] ~ [ linux-5.13.19 ] ~ [ linux-5.12.19 ] ~ [ linux-5.11.22 ] ~ [ linux-5.10.180 ] ~ [ linux-5.9.16 ] ~ [ linux-5.8.18 ] ~ [ linux-5.7.19 ] ~ [ linux-5.6.19 ] ~ [ linux-5.5.19 ] ~ [ linux-5.4.243 ] ~ [ linux-5.3.18 ] ~ [ linux-5.2.21 ] ~ [ linux-5.1.21 ] ~ [ linux-5.0.21 ] ~ [ linux-4.20.17 ] ~ [ linux-4.19.283 ] ~ [ linux-4.18.20 ] ~ [ linux-4.17.19 ] ~ [ linux-4.16.18 ] ~ [ linux-4.15.18 ] ~ [ linux-4.14.315 ] ~ [ linux-4.13.16 ] ~ [ linux-4.12.14 ] ~ [ linux-4.11.12 ] ~ [ linux-4.10.17 ] ~ [ linux-4.9.337 ] ~ [ linux-4.4.302 ] ~ [ linux-3.10.108 ] ~ [ linux-2.6.32.71 ] ~ [ linux-2.6.0 ] ~ [ linux-2.4.37.11 ] ~ [ unix-v6-master ] ~ [ ccs-tools-1.8.9 ] ~ [ policy-sample ] ~
Architecture: ~ [ i386 ] ~ [ alpha ] ~ [ m68k ] ~ [ mips ] ~ [ ppc ] ~ [ sparc ] ~ [ sparc64 ] ~

  1 #ifndef _ASM_S390_KPROBES_H
  2 #define _ASM_S390_KPROBES_H
  3 /*
  4  *  Kernel Probes (KProbes)
  5  *
  6  * This program is free software; you can redistribute it and/or modify
  7  * it under the terms of the GNU General Public License as published by
  8  * the Free Software Foundation; either version 2 of the License, or
  9  * (at your option) any later version.
 10  *
 11  * This program is distributed in the hope that it will be useful,
 12  * but WITHOUT ANY WARRANTY; without even the implied warranty of
 13  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 14  * GNU General Public License for more details.
 15  *
 16  * You should have received a copy of the GNU General Public License
 17  * along with this program; if not, write to the Free Software
 18  * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
 19  *
 20  * Copyright IBM Corp. 2002, 2006
 21  *
 22  * 2002-Oct     Created by Vamsi Krishna S <vamsi_krishna@in.ibm.com> Kernel
 23  *              Probes initial implementation ( includes suggestions from
 24  *              Rusty Russell).
 25  * 2004-Nov     Modified for PPC64 by Ananth N Mavinakayanahalli
 26  *              <ananth@in.ibm.com>
 27  * 2005-Dec     Used as a template for s390 by Mike Grundy
 28  *              <grundym@us.ibm.com>
 29  */
 30 #include <linux/types.h>
 31 #include <linux/ptrace.h>
 32 #include <linux/percpu.h>
 33 
 34 #define __ARCH_WANT_KPROBES_INSN_SLOT
 35 
 36 struct pt_regs;
 37 struct kprobe;
 38 
 39 typedef u16 kprobe_opcode_t;
 40 #define BREAKPOINT_INSTRUCTION  0x0002
 41 
 42 /* Maximum instruction size is 3 (16bit) halfwords: */
 43 #define MAX_INSN_SIZE           0x0003
 44 #define MAX_STACK_SIZE          64
 45 #define MIN_STACK_SIZE(ADDR) (((MAX_STACK_SIZE) < \
 46         (((unsigned long)task_stack_page(current)) + THREAD_SIZE - (ADDR))) \
 47         ? (MAX_STACK_SIZE) \
 48         : (((unsigned long)task_stack_page(current)) + THREAD_SIZE - (ADDR)))
 49 
 50 #define kretprobe_blacklist_size 0
 51 
 52 #define KPROBE_SWAP_INST        0x10
 53 
 54 #define FIXUP_PSW_NORMAL        0x08
 55 #define FIXUP_BRANCH_NOT_TAKEN  0x04
 56 #define FIXUP_RETURN_REGISTER   0x02
 57 #define FIXUP_NOT_REQUIRED      0x01
 58 
 59 /* Architecture specific copy of original instruction */
 60 struct arch_specific_insn {
 61         /* copy of original instruction */
 62         kprobe_opcode_t *insn;
 63         unsigned int is_ftrace_insn : 1;
 64 };
 65 
 66 struct prev_kprobe {
 67         struct kprobe *kp;
 68         unsigned long status;
 69 };
 70 
 71 /* per-cpu kprobe control block */
 72 struct kprobe_ctlblk {
 73         unsigned long kprobe_status;
 74         unsigned long kprobe_saved_imask;
 75         unsigned long kprobe_saved_ctl[3];
 76         struct prev_kprobe prev_kprobe;
 77         struct pt_regs jprobe_saved_regs;
 78         kprobe_opcode_t jprobes_stack[MAX_STACK_SIZE];
 79 };
 80 
 81 void arch_remove_kprobe(struct kprobe *p);
 82 void kretprobe_trampoline(void);
 83 
 84 int kprobe_fault_handler(struct pt_regs *regs, int trapnr);
 85 int kprobe_exceptions_notify(struct notifier_block *self,
 86         unsigned long val, void *data);
 87 
 88 int probe_is_prohibited_opcode(u16 *insn);
 89 int probe_get_fixup_type(u16 *insn);
 90 int probe_is_insn_relative_long(u16 *insn);
 91 
 92 #define flush_insn_slot(p)      do { } while (0)
 93 
 94 #endif  /* _ASM_S390_KPROBES_H */
 95 

~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

kernel.org | git.kernel.org | LWN.net | Project Home | Wiki (Japanese) | Wiki (English) | SVN repository | Mail admin

Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.

osdn.jp