linux/arch/csky/include/asm/kprobes.h
<<
>>
Prefs
   1/* SPDX-License-Identifier: GPL-2.0-only */
   2
   3#ifndef __ASM_CSKY_KPROBES_H
   4#define __ASM_CSKY_KPROBES_H
   5
   6#include <asm-generic/kprobes.h>
   7
   8#ifdef CONFIG_KPROBES
   9#include <linux/types.h>
  10#include <linux/ptrace.h>
  11#include <linux/percpu.h>
  12
  13#define __ARCH_WANT_KPROBES_INSN_SLOT
  14#define MAX_INSN_SIZE                   1
  15
  16#define flush_insn_slot(p)              do { } while (0)
  17#define kretprobe_blacklist_size        0
  18
  19#include <asm/probes.h>
  20
  21struct prev_kprobe {
  22        struct kprobe *kp;
  23        unsigned int status;
  24};
  25
  26/* Single step context for kprobe */
  27struct kprobe_step_ctx {
  28        unsigned long ss_pending;
  29        unsigned long match_addr;
  30};
  31
  32/* per-cpu kprobe control block */
  33struct kprobe_ctlblk {
  34        unsigned int kprobe_status;
  35        unsigned long saved_sr;
  36        struct prev_kprobe prev_kprobe;
  37        struct kprobe_step_ctx ss_ctx;
  38};
  39
  40void arch_remove_kprobe(struct kprobe *p);
  41int kprobe_fault_handler(struct pt_regs *regs, unsigned int trapnr);
  42int kprobe_breakpoint_handler(struct pt_regs *regs);
  43int kprobe_single_step_handler(struct pt_regs *regs);
  44void kretprobe_trampoline(void);
  45void __kprobes *trampoline_probe_handler(struct pt_regs *regs);
  46
  47#endif /* CONFIG_KPROBES */
  48#endif /* __ASM_CSKY_KPROBES_H */
  49