Lines Matching refs:frame

87 x86_invalid_exception(iframe* frame)
92 frame->vector, exception_name(frame->vector, name, sizeof(name)),
93 frame->ip, thread ? thread->id : -1);
98 x86_fatal_exception(iframe* frame)
102 exception_name(frame->vector, name, sizeof(name)), frame->error_code);
107 x86_unexpected_exception(iframe* frame)
115 switch (frame->vector) {
120 signalAddress = frame->ip;
127 signalAddress = frame->ip;
140 signalAddress = frame->ip;
147 signalAddress = frame->ip;
154 signalAddress = frame->ip;
163 signalAddress = frame->ip;
180 signalAddress = frame->ip;
184 x86_invalid_exception(frame);
188 if (IFRAME_IS_USER(frame)) {
209 exception_name(frame->vector, name, sizeof(name)),
210 frame->error_code);
216 x86_hardware_interrupt(struct iframe* frame)
218 int32 vector = frame->vector - ARCH_INTERRUPT_BASE;
264 x86_page_fault_exception(struct iframe* frame)
276 debug_set_page_fault_info(cr2, frame->ip,
277 (frame->error_code & PGFAULT_W) != 0
279 frame->ip = cpu->fault_handler;
280 frame->bp = cpu->fault_handler_stack_pointer;
287 debug_set_page_fault_info(cr2, frame->ip,
288 (frame->error_code & PGFAULT_W) != 0
290 frame->ip = reinterpret_cast<uintptr_t>(thread->fault_handler);
297 "address %p from ip %p\n", (void*)cr2, (void*)frame->ip);
299 } else if (!IFRAME_IS_USER(frame)
300 && (frame->error_code & PGFAULT_I) != 0
305 (void*)cr2, (void*)frame->ip);
306 } else if ((frame->flags & X86_EFLAGS_ALIGNMENT_CHECK) == 0
307 && !IFRAME_IS_USER(frame)
308 && (frame->error_code & PGFAULT_P) != 0
313 (void*)cr2, (void*)frame->ip);
314 } else if ((frame->flags & X86_EFLAGS_INTERRUPT) == 0) {
324 if (frame->ip != handler) {
325 frame->ip = handler;
333 (void*)frame->ip);
339 "%p from ip %p\n", (void*)cr2, (void*)frame->ip);
343 "%p from ip %p\n", (void*)cr2, (void*)frame->ip);
349 vm_page_fault(cr2, frame->ip,
350 (frame->error_code & PGFAULT_W) != 0, // write access
351 (frame->error_code & PGFAULT_I) != 0, // instruction fetch
352 IFRAME_IS_USER(frame), // userland
357 frame->ip = newip;