Fedora kernel-2.6.17-1.2142_FC4 patched with stable patch-2.6.17.4-vs2.0.2-rc26.diff
[linux-2.6.git] / include / asm-sparc64 / kprobes.h
index a8d326a..e4efe65 100644 (file)
@@ -3,6 +3,7 @@
 
 #include <linux/config.h>
 #include <linux/types.h>
+#include <linux/percpu.h>
 
 typedef u32 kprobe_opcode_t;
 
@@ -11,6 +12,7 @@ typedef u32 kprobe_opcode_t;
 #define MAX_INSN_SIZE 2
 
 #define JPROBE_ENTRY(pentry)   (kprobe_opcode_t *)pentry
+#define arch_remove_kprobe(p)  do {} while (0)
 
 /* Architecture specific copy of original instruction*/
 struct arch_specific_insn {
@@ -18,15 +20,25 @@ struct arch_specific_insn {
        kprobe_opcode_t insn[MAX_INSN_SIZE];
 };
 
-#ifdef CONFIG_KPROBES
+struct prev_kprobe {
+       struct kprobe *kp;
+       unsigned int status;
+       unsigned long orig_tnpc;
+       unsigned long orig_tstate_pil;
+};
+
+/* per-cpu kprobe control block */
+struct kprobe_ctlblk {
+       unsigned long kprobe_status;
+       unsigned long kprobe_orig_tnpc;
+       unsigned long kprobe_orig_tstate_pil;
+       long *jprobe_saved_esp;
+       struct pt_regs jprobe_saved_regs;
+       struct pt_regs *jprobe_saved_regs_location;
+       struct sparc_stackf jprobe_saved_stack;
+       struct prev_kprobe prev_kprobe;
+};
+
 extern int kprobe_exceptions_notify(struct notifier_block *self,
                                    unsigned long val, void *data);
-#else                          /* !CONFIG_KPROBES */
-static inline int kprobe_exceptions_notify(struct notifier_block *self,
-                                          unsigned long val, void *data)
-{
-       return 0;
-}
-#endif
-
 #endif /* _SPARC64_KPROBES_H */