kprobes.h (1186B)
1/* SPDX-License-Identifier: GPL-2.0-only */ 2/* 3 * Copyright (C) 2004, 2007-2010, 2011-2012 Synopsys, Inc. (www.synopsys.com) 4 */ 5 6#ifndef _ARC_KPROBES_H 7#define _ARC_KPROBES_H 8 9#include <asm-generic/kprobes.h> 10 11#ifdef CONFIG_KPROBES 12 13typedef u16 kprobe_opcode_t; 14 15#define UNIMP_S_INSTRUCTION 0x79e0 16#define TRAP_S_2_INSTRUCTION 0x785e 17 18#define MAX_INSN_SIZE 8 19#define MAX_STACK_SIZE 64 20 21struct arch_specific_insn { 22 int is_short; 23 kprobe_opcode_t *t1_addr, *t2_addr; 24 kprobe_opcode_t t1_opcode, t2_opcode; 25}; 26 27#define flush_insn_slot(p) do { } while (0) 28 29#define kretprobe_blacklist_size 0 30 31struct kprobe; 32 33void arch_remove_kprobe(struct kprobe *p); 34 35int kprobe_exceptions_notify(struct notifier_block *self, 36 unsigned long val, void *data); 37 38struct prev_kprobe { 39 struct kprobe *kp; 40 unsigned long status; 41}; 42 43struct kprobe_ctlblk { 44 unsigned int kprobe_status; 45 struct prev_kprobe prev_kprobe; 46}; 47 48int kprobe_fault_handler(struct pt_regs *regs, unsigned long cause); 49void __kretprobe_trampoline(void); 50void trap_is_kprobe(unsigned long address, struct pt_regs *regs); 51#else 52#define trap_is_kprobe(address, regs) 53#endif /* CONFIG_KPROBES */ 54 55#endif /* _ARC_KPROBES_H */