Lines Matching refs:kcb

152 static void __kprobes save_previous_kprobe(struct kprobe_ctlblk *kcb)  in save_previous_kprobe()  argument
154 kcb->prev_kprobe.kp = kprobe_running(); in save_previous_kprobe()
155 kcb->prev_kprobe.status = kcb->kprobe_status; in save_previous_kprobe()
156 kcb->prev_kprobe.saved_pc = kcb->kprobe_saved_pc; in save_previous_kprobe()
159 static void __kprobes restore_previous_kprobe(struct kprobe_ctlblk *kcb) in restore_previous_kprobe() argument
161 __this_cpu_write(current_kprobe, kcb->prev_kprobe.kp); in restore_previous_kprobe()
162 kcb->kprobe_status = kcb->prev_kprobe.status; in restore_previous_kprobe()
163 kcb->kprobe_saved_pc = kcb->prev_kprobe.saved_pc; in restore_previous_kprobe()
167 struct kprobe_ctlblk *kcb) in set_current_kprobe() argument
170 kcb->kprobe_saved_pc = regs->pc; in set_current_kprobe()
188 struct kprobe_ctlblk *kcb; in kprobe_handler() local
197 kcb = get_kprobe_ctlblk(); in kprobe_handler()
203 if (kcb->kprobe_status == KPROBE_HIT_SS && in kprobe_handler()
214 save_previous_kprobe(kcb); in kprobe_handler()
215 set_current_kprobe(p, regs, kcb); in kprobe_handler()
218 kcb->kprobe_status = KPROBE_REENTER; in kprobe_handler()
253 set_current_kprobe(p, regs, kcb); in kprobe_handler()
254 kcb->kprobe_status = KPROBE_HIT_ACTIVE; in kprobe_handler()
263 kcb->kprobe_status = KPROBE_HIT_SS; in kprobe_handler()
283 struct kprobe_ctlblk *kcb) in resume_execution() argument
285 unsigned long orig_pc = kcb->kprobe_saved_pc; in resume_execution()
292 struct kprobe_ctlblk *kcb = get_kprobe_ctlblk(); in post_kprobe_handler() local
297 if ((kcb->kprobe_status != KPROBE_REENTER) && cur->post_handler) { in post_kprobe_handler()
298 kcb->kprobe_status = KPROBE_HIT_SSDONE; in post_kprobe_handler()
302 resume_execution(cur, regs, kcb); in post_kprobe_handler()
305 if (kcb->kprobe_status == KPROBE_REENTER) { in post_kprobe_handler()
306 restore_previous_kprobe(kcb); in post_kprobe_handler()
319 struct kprobe_ctlblk *kcb = get_kprobe_ctlblk(); in kprobe_fault_handler() local
324 if (kcb->kprobe_status & KPROBE_HIT_SS) { in kprobe_fault_handler()
332 resume_execution(cur, regs, kcb); in kprobe_fault_handler()
375 struct kprobe_ctlblk *kcb = get_kprobe_ctlblk(); in setjmp_pre_handler() local
377 kcb->jprobe_saved_regs = *regs; in setjmp_pre_handler()
378 kcb->jprobe_saved_sp = regs->sp; in setjmp_pre_handler()
380 memcpy(kcb->jprobes_stack, (void *)kcb->jprobe_saved_sp, in setjmp_pre_handler()
381 MIN_JPROBES_STACK_SIZE(kcb->jprobe_saved_sp)); in setjmp_pre_handler()
401 struct kprobe_ctlblk *kcb = get_kprobe_ctlblk(); in longjmp_break_handler() local
405 *regs = kcb->jprobe_saved_regs; in longjmp_break_handler()
406 memcpy((void *)kcb->jprobe_saved_sp, kcb->jprobes_stack, in longjmp_break_handler()
407 MIN_JPROBES_STACK_SIZE(kcb->jprobe_saved_sp)); in longjmp_break_handler()