diff options
author | Jeff Garzik <jgarzik@pobox.com> | 2005-11-10 04:12:10 -0500 |
---|---|---|
committer | Jeff Garzik <jgarzik@pobox.com> | 2005-11-10 04:12:10 -0500 |
commit | 2f67bdb23d74a6c6fd4f98f64239c5c34d1833cc (patch) | |
tree | fe533abe3e7c400848647b95e4806f5125c654c3 /include/asm-x86_64 | |
parent | d40d9d29c020f8466c96f8e3ad4b7c014ff1085d (diff) | |
parent | 3b44f137b9a846c5452d9e6e1271b79b1dbcc942 (diff) |
Merge branch 'master'
Diffstat (limited to 'include/asm-x86_64')
-rw-r--r-- | include/asm-x86_64/elf.h | 2 | ||||
-rw-r--r-- | include/asm-x86_64/kprobes.h | 19 | ||||
-rw-r--r-- | include/asm-x86_64/pgtable.h | 2 |
3 files changed, 23 insertions, 0 deletions
diff --git a/include/asm-x86_64/elf.h b/include/asm-x86_64/elf.h index a60a35e79222..43862cd6a569 100644 --- a/include/asm-x86_64/elf.h +++ b/include/asm-x86_64/elf.h | |||
@@ -149,6 +149,8 @@ extern void set_personality_64bit(void); | |||
149 | */ | 149 | */ |
150 | #define elf_read_implies_exec(ex, executable_stack) (executable_stack != EXSTACK_DISABLE_X) | 150 | #define elf_read_implies_exec(ex, executable_stack) (executable_stack != EXSTACK_DISABLE_X) |
151 | 151 | ||
152 | struct task_struct; | ||
153 | |||
152 | extern int dump_task_regs (struct task_struct *, elf_gregset_t *); | 154 | extern int dump_task_regs (struct task_struct *, elf_gregset_t *); |
153 | extern int dump_task_fpu (struct task_struct *, elf_fpregset_t *); | 155 | extern int dump_task_fpu (struct task_struct *, elf_fpregset_t *); |
154 | 156 | ||
diff --git a/include/asm-x86_64/kprobes.h b/include/asm-x86_64/kprobes.h index 6d6d883fdf6d..4dd7a7e148d4 100644 --- a/include/asm-x86_64/kprobes.h +++ b/include/asm-x86_64/kprobes.h | |||
@@ -25,6 +25,7 @@ | |||
25 | */ | 25 | */ |
26 | #include <linux/types.h> | 26 | #include <linux/types.h> |
27 | #include <linux/ptrace.h> | 27 | #include <linux/ptrace.h> |
28 | #include <linux/percpu.h> | ||
28 | 29 | ||
29 | struct pt_regs; | 30 | struct pt_regs; |
30 | 31 | ||
@@ -48,6 +49,24 @@ struct arch_specific_insn { | |||
48 | kprobe_opcode_t *insn; | 49 | kprobe_opcode_t *insn; |
49 | }; | 50 | }; |
50 | 51 | ||
52 | struct prev_kprobe { | ||
53 | struct kprobe *kp; | ||
54 | unsigned long status; | ||
55 | unsigned long old_rflags; | ||
56 | unsigned long saved_rflags; | ||
57 | }; | ||
58 | |||
59 | /* per-cpu kprobe control block */ | ||
60 | struct kprobe_ctlblk { | ||
61 | unsigned long kprobe_status; | ||
62 | unsigned long kprobe_old_rflags; | ||
63 | unsigned long kprobe_saved_rflags; | ||
64 | long *jprobe_saved_rsp; | ||
65 | struct pt_regs jprobe_saved_regs; | ||
66 | kprobe_opcode_t jprobes_stack[MAX_STACK_SIZE]; | ||
67 | struct prev_kprobe prev_kprobe; | ||
68 | }; | ||
69 | |||
51 | /* trap3/1 are intr gates for kprobes. So, restore the status of IF, | 70 | /* trap3/1 are intr gates for kprobes. So, restore the status of IF, |
52 | * if necessary, before executing the original int3/1 (trap) handler. | 71 | * if necessary, before executing the original int3/1 (trap) handler. |
53 | */ | 72 | */ |
diff --git a/include/asm-x86_64/pgtable.h b/include/asm-x86_64/pgtable.h index 7a07196a7202..7309fffeec9a 100644 --- a/include/asm-x86_64/pgtable.h +++ b/include/asm-x86_64/pgtable.h | |||
@@ -105,6 +105,8 @@ static inline void pgd_clear (pgd_t * pgd) | |||
105 | 105 | ||
106 | #define ptep_get_and_clear(mm,addr,xp) __pte(xchg(&(xp)->pte, 0)) | 106 | #define ptep_get_and_clear(mm,addr,xp) __pte(xchg(&(xp)->pte, 0)) |
107 | 107 | ||
108 | struct mm_struct; | ||
109 | |||
108 | static inline pte_t ptep_get_and_clear_full(struct mm_struct *mm, unsigned long addr, pte_t *ptep, int full) | 110 | static inline pte_t ptep_get_and_clear_full(struct mm_struct *mm, unsigned long addr, pte_t *ptep, int full) |
109 | { | 111 | { |
110 | pte_t pte; | 112 | pte_t pte; |