linux/arch/arm/include/asm/kprobes.h
<<
>>
Prefs
   1/*
   2 * arch/arm/include/asm/kprobes.h
   3 *
   4 * Copyright (C) 2006, 2007 Motorola Inc.
   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/notifier.h>
  22
  23#define __ARCH_WANT_KPROBES_INSN_SLOT
  24#define MAX_INSN_SIZE                   2
  25#define MAX_STACK_SIZE                  64      /* 32 would probably be OK */
  26
  27#define flush_insn_slot(p)              do { } while (0)
  28#define kretprobe_blacklist_size        0
  29
  30typedef u32 kprobe_opcode_t;
  31struct kprobe;
  32#include <asm/probes.h>
  33
  34#define arch_specific_insn      arch_probes_insn
  35
  36struct prev_kprobe {
  37        struct kprobe *kp;
  38        unsigned int status;
  39};
  40
  41/* per-cpu kprobe control block */
  42struct kprobe_ctlblk {
  43        unsigned int kprobe_status;
  44        struct prev_kprobe prev_kprobe;
  45        struct pt_regs jprobe_saved_regs;
  46        char jprobes_stack[MAX_STACK_SIZE];
  47};
  48
  49void arch_remove_kprobe(struct kprobe *);
  50int kprobe_fault_handler(struct pt_regs *regs, unsigned int fsr);
  51int kprobe_exceptions_notify(struct notifier_block *self,
  52                             unsigned long val, void *data);
  53
  54
  55#endif /* _ARM_KPROBES_H */
  56