Lines Matching refs:kcb

76 static void __kprobes save_previous_kprobe(struct kprobe_ctlblk *kcb)  in save_previous_kprobe()  argument
78 kcb->prev_kprobe.kp = kprobe_running(); in save_previous_kprobe()
79 kcb->prev_kprobe.status = kcb->kprobe_status; in save_previous_kprobe()
80 kcb->prev_kprobe.orig_tnpc = kcb->kprobe_orig_tnpc; in save_previous_kprobe()
81 kcb->prev_kprobe.orig_tstate_pil = kcb->kprobe_orig_tstate_pil; in save_previous_kprobe()
84 static void __kprobes restore_previous_kprobe(struct kprobe_ctlblk *kcb) in restore_previous_kprobe() argument
86 __this_cpu_write(current_kprobe, kcb->prev_kprobe.kp); in restore_previous_kprobe()
87 kcb->kprobe_status = kcb->prev_kprobe.status; in restore_previous_kprobe()
88 kcb->kprobe_orig_tnpc = kcb->prev_kprobe.orig_tnpc; in restore_previous_kprobe()
89 kcb->kprobe_orig_tstate_pil = kcb->prev_kprobe.orig_tstate_pil; in restore_previous_kprobe()
93 struct kprobe_ctlblk *kcb) in set_current_kprobe() argument
96 kcb->kprobe_orig_tnpc = regs->tnpc; in set_current_kprobe()
97 kcb->kprobe_orig_tstate_pil = (regs->tstate & TSTATE_PIL); in set_current_kprobe()
101 struct kprobe_ctlblk *kcb) in prepare_singlestep() argument
108 regs->tnpc = kcb->kprobe_orig_tnpc; in prepare_singlestep()
120 struct kprobe_ctlblk *kcb; in kprobe_handler() local
127 kcb = get_kprobe_ctlblk(); in kprobe_handler()
132 if (kcb->kprobe_status == KPROBE_HIT_SS) { in kprobe_handler()
134 kcb->kprobe_orig_tstate_pil); in kprobe_handler()
143 save_previous_kprobe(kcb); in kprobe_handler()
144 set_current_kprobe(p, regs, kcb); in kprobe_handler()
146 kcb->kprobe_status = KPROBE_REENTER; in kprobe_handler()
147 prepare_singlestep(p, regs, kcb); in kprobe_handler()
181 set_current_kprobe(p, regs, kcb); in kprobe_handler()
182 kcb->kprobe_status = KPROBE_HIT_ACTIVE; in kprobe_handler()
187 prepare_singlestep(p, regs, kcb); in kprobe_handler()
188 kcb->kprobe_status = KPROBE_HIT_SS; in kprobe_handler()
281 struct pt_regs *regs, struct kprobe_ctlblk *kcb) in resume_execution() argument
288 regs->tpc = kcb->kprobe_orig_tnpc; in resume_execution()
293 kcb->kprobe_orig_tstate_pil); in resume_execution()
299 struct kprobe_ctlblk *kcb = get_kprobe_ctlblk(); in post_kprobe_handler() local
304 if ((kcb->kprobe_status != KPROBE_REENTER) && cur->post_handler) { in post_kprobe_handler()
305 kcb->kprobe_status = KPROBE_HIT_SSDONE; in post_kprobe_handler()
309 resume_execution(cur, regs, kcb); in post_kprobe_handler()
312 if (kcb->kprobe_status == KPROBE_REENTER) { in post_kprobe_handler()
313 restore_previous_kprobe(kcb); in post_kprobe_handler()
326 struct kprobe_ctlblk *kcb = get_kprobe_ctlblk(); in kprobe_fault_handler() local
329 switch(kcb->kprobe_status) { in kprobe_fault_handler()
340 regs->tnpc = kcb->kprobe_orig_tnpc; in kprobe_fault_handler()
342 kcb->kprobe_orig_tstate_pil); in kprobe_fault_handler()
343 if (kcb->kprobe_status == KPROBE_REENTER) in kprobe_fault_handler()
344 restore_previous_kprobe(kcb); in kprobe_fault_handler()
447 struct kprobe_ctlblk *kcb = get_kprobe_ctlblk(); in setjmp_pre_handler() local
449 memcpy(&(kcb->jprobe_saved_regs), regs, sizeof(*regs)); in setjmp_pre_handler()
460 struct kprobe_ctlblk *kcb = get_kprobe_ctlblk(); in jprobe_return() local
463 orig_fp = kcb->jprobe_saved_regs.u_regs[UREG_FP]; in jprobe_return()
480 struct kprobe_ctlblk *kcb = get_kprobe_ctlblk(); in longjmp_break_handler() local
483 memcpy(regs, &(kcb->jprobe_saved_regs), sizeof(*regs)); in longjmp_break_handler()