Lines Matching refs:frame

75 print_iframe(const char *event, struct iframe *frame)
81 frame->elr, frame->spsr);
83 frame->lr, frame->sp);
228 do_sync_handler(iframe * frame)
231 print_iframe("Sync abort", frame);
234 IFrameScope scope(frame);
237 switch (ESR_ELx_EXCEPTION(frame->esr)) {
244 bool write = (frame->esr & ISS_DATA_WnR) != 0;
249 bool addrType = (frame->far & (1UL << 63)) != 0;
255 switch (frame->esr & ISS_DATA_DFSC_MASK) {
267 if (fixup_entry(ptPa, initialLevel, frame->far, false))
275 if (write && fixup_entry(ptPa, initialLevel, frame->far, true))
288 debug_set_page_fault_info(frame->far, frame->elr,
290 frame->elr = cpu->fault_handler;
291 frame->sp = cpu->fault_handler_stack_pointer;
300 bool isUser = (frame->spsr & PSR_M_MASK) == PSR_M_EL0t;
302 if ((frame->spsr & PSR_I) != 0) {
306 frame->elr = handler;
310 dprintf("PF: %lx\n", frame->far);
313 vm_page_fault(frame->far, frame->elr, write, isExec, isUser, &ret);
315 frame->elr = ret;
320 frame->far, frame->elr, frame->esr);
326 uint32 imm = (frame->esr & 0xffff);
333 frame->x[0] = B_ERROR;
338 memcpy(args, frame->x, (count < 8 ? count : 8) * 8);
341 if (!IS_USER_ADDRESS(frame->sp)
342 || user_memcpy(&args[8], (void*)frame->sp, (count - 8) * 8) != B_OK) {
343 frame->x[0] = B_BAD_ADDRESS;
348 _fp_save(&frame->fpu);
353 syscall_dispatcher(syscall, (void*)args, &frame->x[0]);
372 _fp_restore(&frame->fpu);
379 frame->far, frame->elr, frame->esr, (frame->esr >> 26) & 0x3f);
384 do_error_handler(iframe * frame)
387 print_iframe("Error", frame);
390 IFrameScope scope(frame);
392 panic("unhandled error! FAR=%lx ELR=%lx ESR=%lx", frame->far, frame->elr, frame->esr);
397 do_irq_handler(iframe * frame)
400 print_iframe("IRQ", frame);
403 IFrameScope scope(frame);
405 _fp_save(&frame->fpu);
413 _fp_restore(&frame->fpu);
418 do_fiq_handler(iframe * frame)
421 print_iframe("FIQ", frame);
424 IFrameScope scope(frame);