Lines Matching refs:kcb
201 static void __kprobes save_previous_kprobe(struct kprobe_ctlblk *kcb) in save_previous_kprobe() argument
203 kcb->prev_kprobe.kp = kprobe_running(); in save_previous_kprobe()
204 kcb->prev_kprobe.status = kcb->kprobe_status; in save_previous_kprobe()
207 static void __kprobes restore_previous_kprobe(struct kprobe_ctlblk *kcb) in restore_previous_kprobe() argument
209 __this_cpu_write(current_kprobe, kcb->prev_kprobe.kp); in restore_previous_kprobe()
210 kcb->kprobe_status = kcb->prev_kprobe.status; in restore_previous_kprobe()
233 singlestep(struct kprobe *p, struct pt_regs *regs, struct kprobe_ctlblk *kcb) in singlestep() argument
248 struct kprobe_ctlblk *kcb; in kprobe_handler() local
250 kcb = get_kprobe_ctlblk(); in kprobe_handler()
270 switch (kcb->kprobe_status) { in kprobe_handler()
275 save_previous_kprobe(kcb); in kprobe_handler()
277 kcb->kprobe_status = KPROBE_REENTER; in kprobe_handler()
278 singlestep(p, regs, kcb); in kprobe_handler()
279 restore_previous_kprobe(kcb); in kprobe_handler()
288 kcb->kprobe_status = KPROBE_HIT_ACTIVE; in kprobe_handler()
298 kcb->kprobe_status = KPROBE_HIT_SS; in kprobe_handler()
299 singlestep(p, regs, kcb); in kprobe_handler()
301 kcb->kprobe_status = KPROBE_HIT_SSDONE; in kprobe_handler()
317 kcb->kprobe_status = KPROBE_HIT_SS; in kprobe_handler()
318 singlestep(cur, regs, kcb); in kprobe_handler()
320 kcb->kprobe_status = KPROBE_HIT_SSDONE; in kprobe_handler()
347 struct kprobe_ctlblk *kcb = get_kprobe_ctlblk(); in kprobe_fault_handler() local
349 switch (kcb->kprobe_status) { in kprobe_fault_handler()
360 if (kcb->kprobe_status == KPROBE_REENTER) { in kprobe_fault_handler()
361 restore_previous_kprobe(kcb); in kprobe_fault_handler()
500 struct kprobe_ctlblk *kcb = get_kprobe_ctlblk(); in setjmp_pre_handler() local
504 kcb->jprobe_saved_regs = *regs; in setjmp_pre_handler()
505 memcpy(kcb->jprobes_stack, (void *)sp_addr, MIN_STACK_SIZE(sp_addr)); in setjmp_pre_handler()
524 struct kprobe_ctlblk *kcb = get_kprobe_ctlblk(); in jprobe_return() local
571 : "r" (kcb->jprobe_saved_regs.ARM_sp), in jprobe_return()
582 struct kprobe_ctlblk *kcb = get_kprobe_ctlblk(); in longjmp_break_handler() local
583 long stack_addr = kcb->jprobe_saved_regs.ARM_sp; in longjmp_break_handler()
590 (struct pt_regs *)kcb->jprobe_saved_regs.ARM_sp; in longjmp_break_handler()
599 *regs = kcb->jprobe_saved_regs; in longjmp_break_handler()
600 memcpy((void *)stack_addr, kcb->jprobes_stack, in longjmp_break_handler()