Lines Matching refs:regs

100 static void __kprobes prepare_singlestep(struct kprobe *p, struct pt_regs *regs)  in prepare_singlestep()  argument
102 enable_single_step(regs); in prepare_singlestep()
110 regs->nip = (unsigned long)p->ainsn.insn; in prepare_singlestep()
127 static void __kprobes set_current_kprobe(struct kprobe *p, struct pt_regs *regs, in set_current_kprobe() argument
131 kcb->kprobe_saved_msr = regs->msr; in set_current_kprobe()
135 struct pt_regs *regs) in arch_prepare_kretprobe() argument
137 ri->ret_addr = (kprobe_opcode_t *)regs->link; in arch_prepare_kretprobe()
140 regs->link = (unsigned long)kretprobe_trampoline; in arch_prepare_kretprobe()
143 static int __kprobes kprobe_handler(struct pt_regs *regs) in kprobe_handler() argument
147 unsigned int *addr = (unsigned int *)regs->nip; in kprobe_handler()
165 regs->msr &= ~MSR_SINGLESTEP; in kprobe_handler()
166 regs->msr |= kcb->kprobe_saved_msr; in kprobe_handler()
176 set_current_kprobe(p, regs, kcb); in kprobe_handler()
177 kcb->kprobe_saved_msr = regs->msr; in kprobe_handler()
179 prepare_singlestep(p, regs); in kprobe_handler()
196 if (p->break_handler && p->break_handler(p, regs)) { in kprobe_handler()
228 set_current_kprobe(p, regs, kcb); in kprobe_handler()
229 if (p->pre_handler && p->pre_handler(p, regs)) in kprobe_handler()
238 ret = emulate_step(regs, insn); in kprobe_handler()
248 p->post_handler(p, regs, 0); in kprobe_handler()
266 prepare_singlestep(p, regs); in kprobe_handler()
292 struct pt_regs *regs) in trampoline_probe_handler() argument
322 ri->rp->handler(ri, regs); in trampoline_probe_handler()
337 regs->nip = orig_ret_address; in trampoline_probe_handler()
363 static int __kprobes post_kprobe_handler(struct pt_regs *regs) in post_kprobe_handler() argument
372 if (((unsigned long)cur->ainsn.insn + 4) != regs->nip) in post_kprobe_handler()
377 cur->post_handler(cur, regs, 0); in post_kprobe_handler()
381 regs->nip = (unsigned long)cur->addr + 4; in post_kprobe_handler()
382 regs->msr |= kcb->kprobe_saved_msr; in post_kprobe_handler()
398 if (regs->msr & MSR_SINGLESTEP) in post_kprobe_handler()
404 int __kprobes kprobe_fault_handler(struct pt_regs *regs, int trapnr) in kprobe_fault_handler() argument
420 regs->nip = (unsigned long)cur->addr; in kprobe_fault_handler()
421 regs->msr &= ~MSR_SINGLESTEP; /* Turn off 'trace' bits */ in kprobe_fault_handler()
422 regs->msr |= kcb->kprobe_saved_msr; in kprobe_fault_handler()
445 if (cur->fault_handler && cur->fault_handler(cur, regs, trapnr)) in kprobe_fault_handler()
452 if ((entry = search_exception_tables(regs->nip)) != NULL) { in kprobe_fault_handler()
453 regs->nip = entry->fixup; in kprobe_fault_handler()
477 if (args->regs && user_mode(args->regs)) in kprobe_exceptions_notify()
482 if (kprobe_handler(args->regs)) in kprobe_exceptions_notify()
486 if (post_kprobe_handler(args->regs)) in kprobe_exceptions_notify()
500 int __kprobes setjmp_pre_handler(struct kprobe *p, struct pt_regs *regs) in setjmp_pre_handler() argument
505 memcpy(&kcb->jprobe_saved_regs, regs, sizeof(struct pt_regs)); in setjmp_pre_handler()
508 regs->nip = arch_deref_entry_point(jp->entry); in setjmp_pre_handler()
511 regs->gpr[12] = (unsigned long)jp->entry; in setjmp_pre_handler()
513 regs->gpr[2] = (unsigned long)(((func_descr_t *)jp->entry)->toc); in setjmp_pre_handler()
529 int __kprobes longjmp_break_handler(struct kprobe *p, struct pt_regs *regs) in longjmp_break_handler() argument
538 memcpy(regs, &kcb->jprobe_saved_regs, sizeof(struct pt_regs)); in longjmp_break_handler()