Lines Matching refs:kcb
156 struct kprobe_ctlblk *kcb = get_kprobe_ctlblk(); in swap_instruction() local
157 unsigned long status = kcb->kprobe_status; in swap_instruction()
180 kcb->kprobe_status = KPROBE_SWAP_INST; in swap_instruction()
182 kcb->kprobe_status = status; in swap_instruction()
209 static void enable_singlestep(struct kprobe_ctlblk *kcb, in enable_singlestep() argument
221 __ctl_store(kcb->kprobe_saved_ctl, 9, 11); in enable_singlestep()
222 kcb->kprobe_saved_imask = regs->psw.mask & in enable_singlestep()
233 static void disable_singlestep(struct kprobe_ctlblk *kcb, in disable_singlestep() argument
238 __ctl_load(kcb->kprobe_saved_ctl, 9, 11); in disable_singlestep()
240 regs->psw.mask |= kcb->kprobe_saved_imask; in disable_singlestep()
250 static void push_kprobe(struct kprobe_ctlblk *kcb, struct kprobe *p) in push_kprobe() argument
252 kcb->prev_kprobe.kp = __this_cpu_read(current_kprobe); in push_kprobe()
253 kcb->prev_kprobe.status = kcb->kprobe_status; in push_kprobe()
263 static void pop_kprobe(struct kprobe_ctlblk *kcb) in pop_kprobe() argument
265 __this_cpu_write(current_kprobe, kcb->prev_kprobe.kp); in pop_kprobe()
266 kcb->kprobe_status = kcb->prev_kprobe.status; in pop_kprobe()
279 static void kprobe_reenter_check(struct kprobe_ctlblk *kcb, struct kprobe *p) in kprobe_reenter_check() argument
281 switch (kcb->kprobe_status) { in kprobe_reenter_check()
303 struct kprobe_ctlblk *kcb; in kprobe_handler() local
312 kcb = get_kprobe_ctlblk(); in kprobe_handler()
326 kprobe_reenter_check(kcb, p); in kprobe_handler()
327 push_kprobe(kcb, p); in kprobe_handler()
328 kcb->kprobe_status = KPROBE_REENTER; in kprobe_handler()
338 push_kprobe(kcb, p); in kprobe_handler()
339 kcb->kprobe_status = KPROBE_HIT_ACTIVE; in kprobe_handler()
342 kcb->kprobe_status = KPROBE_HIT_SS; in kprobe_handler()
344 enable_singlestep(kcb, regs, (unsigned long) p->ainsn.insn); in kprobe_handler()
356 kcb->kprobe_status = KPROBE_HIT_SS; in kprobe_handler()
357 enable_singlestep(kcb, regs, in kprobe_handler()
492 struct kprobe_ctlblk *kcb = get_kprobe_ctlblk(); in resume_execution() local
529 disable_singlestep(kcb, regs, ip); in resume_execution()
535 struct kprobe_ctlblk *kcb = get_kprobe_ctlblk(); in post_kprobe_handler() local
541 if (kcb->kprobe_status != KPROBE_REENTER && p->post_handler) { in post_kprobe_handler()
542 kcb->kprobe_status = KPROBE_HIT_SSDONE; in post_kprobe_handler()
547 pop_kprobe(kcb); in post_kprobe_handler()
564 struct kprobe_ctlblk *kcb = get_kprobe_ctlblk(); in kprobe_trap_handler() local
568 switch(kcb->kprobe_status) { in kprobe_trap_handler()
581 disable_singlestep(kcb, regs, (unsigned long) p->addr); in kprobe_trap_handler()
582 pop_kprobe(kcb); in kprobe_trap_handler()
680 struct kprobe_ctlblk *kcb = get_kprobe_ctlblk(); in setjmp_pre_handler() local
683 memcpy(&kcb->jprobe_saved_regs, regs, sizeof(struct pt_regs)); in setjmp_pre_handler()
692 memcpy(kcb->jprobes_stack, (void *) stack, MIN_STACK_SIZE(stack)); in setjmp_pre_handler()
705 struct kprobe_ctlblk *kcb = get_kprobe_ctlblk(); in longjmp_break_handler() local
708 stack = (unsigned long) kcb->jprobe_saved_regs.gprs[15]; in longjmp_break_handler()
711 memcpy(regs, &kcb->jprobe_saved_regs, sizeof(struct pt_regs)); in longjmp_break_handler()
713 memcpy((void *) stack, kcb->jprobes_stack, MIN_STACK_SIZE(stack)); in longjmp_break_handler()