Lines Matching refs:kcb
200 static void enable_singlestep(struct kprobe_ctlblk *kcb, in enable_singlestep() argument
212 __ctl_store(kcb->kprobe_saved_ctl, 9, 11); in enable_singlestep()
213 kcb->kprobe_saved_imask = regs->psw.mask & in enable_singlestep()
224 static void disable_singlestep(struct kprobe_ctlblk *kcb, in disable_singlestep() argument
229 __ctl_load(kcb->kprobe_saved_ctl, 9, 11); in disable_singlestep()
231 regs->psw.mask |= kcb->kprobe_saved_imask; in disable_singlestep()
241 static void push_kprobe(struct kprobe_ctlblk *kcb, struct kprobe *p) in push_kprobe() argument
243 kcb->prev_kprobe.kp = __this_cpu_read(current_kprobe); in push_kprobe()
244 kcb->prev_kprobe.status = kcb->kprobe_status; in push_kprobe()
254 static void pop_kprobe(struct kprobe_ctlblk *kcb) in pop_kprobe() argument
256 __this_cpu_write(current_kprobe, kcb->prev_kprobe.kp); in pop_kprobe()
257 kcb->kprobe_status = kcb->prev_kprobe.status; in pop_kprobe()
270 static void kprobe_reenter_check(struct kprobe_ctlblk *kcb, struct kprobe *p) in kprobe_reenter_check() argument
272 switch (kcb->kprobe_status) { in kprobe_reenter_check()
294 struct kprobe_ctlblk *kcb; in kprobe_handler() local
303 kcb = get_kprobe_ctlblk(); in kprobe_handler()
317 kprobe_reenter_check(kcb, p); in kprobe_handler()
318 push_kprobe(kcb, p); in kprobe_handler()
319 kcb->kprobe_status = KPROBE_REENTER; in kprobe_handler()
328 push_kprobe(kcb, p); in kprobe_handler()
329 kcb->kprobe_status = KPROBE_HIT_ACTIVE; in kprobe_handler()
331 pop_kprobe(kcb); in kprobe_handler()
335 kcb->kprobe_status = KPROBE_HIT_SS; in kprobe_handler()
337 enable_singlestep(kcb, regs, (unsigned long) p->ainsn.insn); in kprobe_handler()
463 struct kprobe_ctlblk *kcb = get_kprobe_ctlblk(); in resume_execution() local
500 disable_singlestep(kcb, regs, ip); in resume_execution()
506 struct kprobe_ctlblk *kcb = get_kprobe_ctlblk(); in post_kprobe_handler() local
512 if (kcb->kprobe_status != KPROBE_REENTER && p->post_handler) { in post_kprobe_handler()
513 kcb->kprobe_status = KPROBE_HIT_SSDONE; in post_kprobe_handler()
518 pop_kprobe(kcb); in post_kprobe_handler()
535 struct kprobe_ctlblk *kcb = get_kprobe_ctlblk(); in kprobe_trap_handler() local
539 switch(kcb->kprobe_status) { in kprobe_trap_handler()
549 disable_singlestep(kcb, regs, (unsigned long) p->addr); in kprobe_trap_handler()
550 pop_kprobe(kcb); in kprobe_trap_handler()