linux/arch/arm64/include/asm/kprobes.h
<<
>>
Prefs
   1/*
   2 * arch/arm64/include/asm/kprobes.h
   3 *
   4 * Copyright (C) 2013 Linaro Limited
   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 version 2 as
   8 * published by the Free Software Foundation.
   9 *
  10 * This program is distributed in the hope that it will be useful,
  11 * but WITHOUT ANY WARRANTY; without even the implied warranty of
  12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
  13 * General Public License for more details.
  14 */
  15
  16#ifndef _ARM_KPROBES_H
  17#define _ARM_KPROBES_H
  18
  19#include <linux/types.h>
  20#include <linux/ptrace.h>
  21#include <linux/percpu.h>
  22
  23#define __ARCH_WANT_KPROBES_INSN_SLOT
  24#define MAX_INSN_SIZE                   1
  25
  26#define flush_insn_slot(p)              do { } while (0)
  27#define kretprobe_blacklist_size        0
  28
  29#include <asm/probes.h>
  30
  31struct prev_kprobe {
  32        struct kprobe *kp;
  33        unsigned int status;
  34};
  35
  36/* Single step context for kprobe */
  37struct kprobe_step_ctx {
  38        unsigned long ss_pending;
  39        unsigned long match_addr;
  40};
  41
  42/* per-cpu kprobe control block */
  43struct kprobe_ctlblk {
  44        unsigned int kprobe_status;
  45        unsigned long saved_irqflag;
  46        struct prev_kprobe prev_kprobe;
  47        struct kprobe_step_ctx ss_ctx;
  48        struct pt_regs jprobe_saved_regs;
  49};
  50
  51void arch_remove_kprobe(struct kprobe *);
  52int kprobe_fault_handler(struct pt_regs *regs, unsigned int fsr);
  53int kprobe_exceptions_notify(struct notifier_block *self,
  54                             unsigned long val, void *data);
  55int kprobe_breakpoint_handler(struct pt_regs *regs, unsigned int esr);
  56int kprobe_single_step_handler(struct pt_regs *regs, unsigned int esr);
  57void kretprobe_trampoline(void);
  58void __kprobes *trampoline_probe_handler(struct pt_regs *regs);
  59
  60#endif /* _ARM_KPROBES_H */
  61