Lines Matching refs:tf

176 #define	TRAP_USERMODE(tf)	((tf->tf_spsr & PSR_MODE) == PSR_USR32_MODE)
195 data_abort_fixup(trapframe_t *tf, u_int fsr, u_int far, struct thread *td, struct ksig *ksig)
201 error = cpu_dataabt_fixup(tf);
209 TRAP_USERMODE(tf) ? "user" : "kernel");
210 printf("pc = 0x%08x, opcode 0x%08x, insn = ", tf->tf_pc,
211 *((u_int *)tf->tf_pc));
212 disassemble(tf->tf_pc);
215 if (!TRAP_USERMODE(tf))
216 dab_fatal(tf, fsr, far, td, NULL, ksig);
225 data_abort_handler(trapframe_t *tf)
243 printf("data abort: %p (from %p %p)\n", (void*)far, (void*)tf->tf_pc,
244 (void*)tf->tf_svc_lr);
257 user = TRAP_USERMODE(tf);
261 td->td_frame = tf;
270 if (__predict_true(tf->tf_spsr & I32_bit) == 0)
272 if (__predict_true(tf->tf_spsr & F32_bit) == 0)
279 if ((data_aborts[fsr & FAULT_TYPE_MASK].func)(tf, fsr, far,
302 tf->tf_r0 = EFAULT;
303 tf->tf_pc = (register_t)(intptr_t) pcb->pcb_onfault;
314 if (__predict_false((tf->tf_pc & 3) != 0)) {
330 dab_fatal(tf, fsr, far, td, &ksig);
334 switch (data_abort_fixup(tf, fsr, far, td, &ksig)) {
357 (ReadWord(tf->tf_pc) & 0x05200000) != 0x04200000))) {
361 if (__predict_false((tf->tf_spsr & PSR_MODE)==PSR_UND32_MODE)) {
393 u_int insn = ReadWord(tf->tf_pc);
439 tf->tf_r0 = error;
440 tf->tf_pc = (register_t)(intptr_t) pcb->pcb_onfault;
446 dab_fatal(tf, fsr, far, td, &ksig);
465 userret(td, tf);
482 dab_fatal(trapframe_t *tf, u_int fsr, u_int far, struct thread *td, struct ksig *ksig)
486 mode = TRAP_USERMODE(tf) ? "user" : "kernel";
492 printf("trapframe: %p\nFSR=%08x, FAR=", tf, fsr);
497 printf("spsr=%08x\n", tf->tf_spsr);
500 mode, tf->tf_pc);
501 printf("trapframe: %p, spsr=%08x\n", tf, tf->tf_spsr);
505 tf->tf_r0, tf->tf_r1, tf->tf_r2, tf->tf_r3);
507 tf->tf_r4, tf->tf_r5, tf->tf_r6, tf->tf_r7);
509 tf->tf_r8, tf->tf_r9, tf->tf_r10, tf->tf_r11);
510 printf("r12=%08x, ", tf->tf_r12);
512 if (TRAP_USERMODE(tf))
514 tf->tf_usr_sp, tf->tf_usr_lr);
517 tf->tf_svc_sp, tf->tf_svc_lr);
518 printf(", pc =%08x\n\n", tf->tf_pc);
522 kdb_trap(fsr, 0, tf);
538 dab_align(trapframe_t *tf, u_int fsr, u_int far, struct thread *td, struct ksig *ksig)
542 if (!TRAP_USERMODE(tf)) {
544 dab_fatal(tf, fsr, far, td, ksig);
545 tf->tf_r0 = EFAULT;
546 tf->tf_pc = (int)td->td_pcb->pcb_onfault;
553 (void) data_abort_fixup(tf, fsr, far, td, ksig);
558 td->td_frame = tf;
578 * since some of the machine state is lost. In this case, tf->tf_pc
586 dab_buserr(trapframe_t *tf, u_int fsr, u_int far, struct thread *td, struct ksig *ksig)
592 (tf->tf_spsr & PSR_MODE) == PSR_ABT32_MODE) {
599 tf->tf_spsr &= ~PSR_MODE;
607 if (tf != ((trapframe_t *)pcb->un_32.pcb32_sp) - 1) {
612 * of tf->tf_pc is irrelevant.
614 tf->tf_spsr |= PSR_SVC32_MODE;
626 tf->tf_spsr |= PSR_USR32_MODE;
627 tf->tf_pc = tf->tf_usr_lr;
637 tf->tf_r0 = EFAULT;
638 tf->tf_pc = (register_t)(intptr_t) pcb->pcb_onfault;
643 (void) data_abort_fixup(tf, fsr, far, td, ksig);
648 if (!TRAP_USERMODE(tf))
649 dab_fatal(tf, fsr, far, td, ksig);
654 td->td_frame = tf;
660 prefetch_abort_fixup(trapframe_t *tf, struct ksig *ksig)
666 error = cpu_prefetchabt_fixup(tf);
675 TRAP_USERMODE(tf) ? "user" : "kernel");
676 printf("pc = 0x%08x, opcode 0x%08x, insn = ", tf->tf_pc,
677 *((u_int *)tf->tf_pc));
678 disassemble(tf->tf_pc);
681 if (!TRAP_USERMODE(tf))
682 dab_fatal(tf, 0, tf->tf_pc, NULL, ksig);
691 * void prefetch_abort_handler(trapframe_t *tf)
702 prefetch_abort_handler(trapframe_t *tf)
717 printf("prefetch abort handler: %p %p\n", (void*)tf->tf_pc,
718 (void*)tf->tf_usr_lr);
725 if (TRAP_USERMODE(tf)) {
726 td->td_frame = tf;
730 fault_pc = tf->tf_pc;
732 if (__predict_true(tf->tf_spsr & I32_bit) == 0)
734 if (__predict_true(tf->tf_spsr & F32_bit) == 0)
739 switch (prefetch_abort_fixup(tf, &ksig)) {
746 td->td_frame = tf;
753 if (__predict_false(!TRAP_USERMODE(tf)))
754 dab_fatal(tf, 0, tf->tf_pc, NULL, &ksig);
810 userret(td, tf);