kprobes.h (1343B)
1/* SPDX-License-Identifier: GPL-2.0 */ 2/* 3 * arch/parisc/include/asm/kprobes.h 4 * 5 * PA-RISC kprobes implementation 6 * 7 * Copyright (c) 2019 Sven Schnelle <svens@stackframe.org> 8 */ 9 10#ifndef _PARISC_KPROBES_H 11#define _PARISC_KPROBES_H 12 13#ifdef CONFIG_KPROBES 14 15#include <asm-generic/kprobes.h> 16#include <linux/types.h> 17#include <linux/ptrace.h> 18#include <linux/notifier.h> 19 20#define PARISC_KPROBES_BREAK_INSN 0x3ff801f 21#define PARISC_KPROBES_BREAK_INSN2 0x3ff801e 22#define __ARCH_WANT_KPROBES_INSN_SLOT 23#define MAX_INSN_SIZE 2 24 25typedef u32 kprobe_opcode_t; 26struct kprobe; 27 28void arch_remove_kprobe(struct kprobe *p); 29 30#define flush_insn_slot(p) \ 31 flush_icache_range((unsigned long)&(p)->ainsn.insn[0], \ 32 (unsigned long)&(p)->ainsn.insn[0] + \ 33 MAX_INSN_SIZE*sizeof(kprobe_opcode_t)) 34 35#define kretprobe_blacklist_size 0 36 37struct arch_specific_insn { 38 kprobe_opcode_t *insn; 39}; 40 41struct prev_kprobe { 42 struct kprobe *kp; 43 unsigned long status; 44}; 45 46struct kprobe_ctlblk { 47 unsigned int kprobe_status; 48 struct prev_kprobe prev_kprobe; 49 unsigned long iaoq[2]; 50}; 51 52int __kprobes parisc_kprobe_break_handler(struct pt_regs *regs); 53int __kprobes parisc_kprobe_ss_handler(struct pt_regs *regs); 54static inline int kprobe_fault_handler(struct pt_regs *regs, int trapnr) 55{ 56 return 0; 57} 58 59#endif /* CONFIG_KPROBES */ 60#endif /* _PARISC_KPROBES_H */