Lines Matching refs:kcb

42 	struct kprobe_ctlblk *kcb = get_kprobe_ctlblk();  in arch_simulate_insn()  local
48 post_kprobe_handler(p, kcb, regs); in arch_simulate_insn()
115 static void __kprobes save_previous_kprobe(struct kprobe_ctlblk *kcb) in save_previous_kprobe() argument
117 kcb->prev_kprobe.kp = kprobe_running(); in save_previous_kprobe()
118 kcb->prev_kprobe.status = kcb->kprobe_status; in save_previous_kprobe()
121 static void __kprobes restore_previous_kprobe(struct kprobe_ctlblk *kcb) in restore_previous_kprobe() argument
123 __this_cpu_write(current_kprobe, kcb->prev_kprobe.kp); in restore_previous_kprobe()
124 kcb->kprobe_status = kcb->prev_kprobe.status; in restore_previous_kprobe()
140 static void __kprobes kprobes_save_local_irqflag(struct kprobe_ctlblk *kcb, in kprobes_save_local_irqflag() argument
143 kcb->saved_status = regs->status; in kprobes_save_local_irqflag()
147 static void __kprobes kprobes_restore_local_irqflag(struct kprobe_ctlblk *kcb, in kprobes_restore_local_irqflag() argument
150 regs->status = kcb->saved_status; in kprobes_restore_local_irqflag()
155 struct kprobe_ctlblk *kcb, int reenter) in setup_singlestep() argument
160 save_previous_kprobe(kcb); in setup_singlestep()
162 kcb->kprobe_status = KPROBE_REENTER; in setup_singlestep()
164 kcb->kprobe_status = KPROBE_HIT_SS; in setup_singlestep()
172 kprobes_save_local_irqflag(kcb, regs); in setup_singlestep()
183 struct kprobe_ctlblk *kcb) in reenter_kprobe() argument
185 switch (kcb->kprobe_status) { in reenter_kprobe()
189 setup_singlestep(p, regs, kcb, 1); in reenter_kprobe()
206 post_kprobe_handler(struct kprobe *cur, struct kprobe_ctlblk *kcb, struct pt_regs *regs) in post_kprobe_handler() argument
213 if (kcb->kprobe_status == KPROBE_REENTER) { in post_kprobe_handler()
214 restore_previous_kprobe(kcb); in post_kprobe_handler()
219 kcb->kprobe_status = KPROBE_HIT_SSDONE; in post_kprobe_handler()
233 struct kprobe_ctlblk *kcb = get_kprobe_ctlblk(); in kprobe_fault_handler() local
235 switch (kcb->kprobe_status) { in kprobe_fault_handler()
248 if (kcb->kprobe_status == KPROBE_REENTER) in kprobe_fault_handler()
249 restore_previous_kprobe(kcb); in kprobe_fault_handler()
251 kprobes_restore_local_irqflag(kcb, regs); in kprobe_fault_handler()
272 struct kprobe_ctlblk *kcb; in kprobe_breakpoint_handler() local
275 kcb = get_kprobe_ctlblk(); in kprobe_breakpoint_handler()
282 if (reenter_kprobe(p, regs, kcb)) in kprobe_breakpoint_handler()
287 kcb->kprobe_status = KPROBE_HIT_ACTIVE; in kprobe_breakpoint_handler()
300 setup_singlestep(p, regs, kcb, 0); in kprobe_breakpoint_handler()
321 struct kprobe_ctlblk *kcb = get_kprobe_ctlblk(); in kprobe_single_step_handler() local
325 if (cur && (kcb->kprobe_status & (KPROBE_HIT_SS | KPROBE_REENTER)) && in kprobe_single_step_handler()
327 kprobes_restore_local_irqflag(kcb, regs); in kprobe_single_step_handler()
328 post_kprobe_handler(cur, kcb, regs); in kprobe_single_step_handler()