Lines Matching full:frame
53 static bool check_fault_handler_table(x86_iframe_t *frame) in check_fault_handler_table() argument
65 if (addr == frame->ip) { in check_fault_handler_table()
75 frame->ip = addr; in check_fault_handler_table()
82 extern enum handler_return platform_irq(x86_iframe_t *frame);
84 static void dump_fault_frame(x86_iframe_t *frame) in dump_fault_frame() argument
88 frame->cs, frame->ip, frame->flags, x86_get_cr2()); in dump_fault_frame()
90 frame->ax, frame->cx, frame->dx, frame->bx); in dump_fault_frame()
92 frame->sp, frame->bp, frame->si, frame->di); in dump_fault_frame()
94 frame->ds, frame->es, frame->fs, frame->gs); in dump_fault_frame()
97 frame->cs, frame->ip, frame->flags, x86_get_cr2()); in dump_fault_frame()
99 frame->ax, frame->bx, frame->cx, frame->dx); in dump_fault_frame()
101 frame->si, frame->di, frame->bp, frame->user_sp); in dump_fault_frame()
103 frame->r8, frame->r9, frame->r10, frame->r11); in dump_fault_frame()
105 frame->r12, frame->r13, frame->r14, frame->r15); in dump_fault_frame()
107 frame->err_code); in dump_fault_frame()
111 addr_t stack = (addr_t) frame; in dump_fault_frame()
119 static void exception_die(x86_iframe_t *frame, const char *msg) in exception_die() argument
122 dump_fault_frame(frame); in exception_die()
131 void x86_syscall_handler(x86_iframe_t *frame) in x86_syscall_handler() argument
133 exception_die(frame, "unhandled syscall, halting\n"); in x86_syscall_handler()
136 void x86_gpf_handler(x86_iframe_t *frame) in x86_gpf_handler() argument
138 exception_die(frame, "unhandled gpf, halting\n"); in x86_gpf_handler()
141 void x86_invop_handler(x86_iframe_t *frame) in x86_invop_handler() argument
143 exception_die(frame, "unhandled invalid op, halting\n"); in x86_invop_handler()
146 void x86_unhandled_exception(x86_iframe_t *frame) in x86_unhandled_exception() argument
148 printf("vector %u\n", (uint)frame->vector); in x86_unhandled_exception()
149 exception_die(frame, "unhandled exception, halting\n"); in x86_unhandled_exception()
152 void x86_pfe_handler(x86_iframe_t *frame) in x86_pfe_handler() argument
157 error_code = frame->err_code; in x86_pfe_handler()
159 if (check_fault_handler_table(frame)) { in x86_pfe_handler()
165 (unsigned int)frame->cs & X86_8BYTE_MASK, in x86_pfe_handler()
166 (unsigned int)frame->ip); in x86_pfe_handler()
168 (unsigned int)frame->user_ss & X86_8BYTE_MASK, in x86_pfe_handler()
169 (unsigned int)frame->user_sp); in x86_pfe_handler()
206 exception_die(frame, "Page Fault exception, halting\n"); in x86_pfe_handler()
213 void x86_exception_handler(x86_iframe_t *frame) in x86_exception_handler() argument
216 unsigned int vector = frame->vector; in x86_exception_handler()
225 x86_gpf_handler(frame); in x86_exception_handler()
229 x86_invop_handler(frame); in x86_exception_handler()
233 x86_pfe_handler(frame); in x86_exception_handler()
243 exception_die(frame, "double fault (kernel stack overflow?)\n"); in x86_exception_handler()
250 exception_die(frame, "x87 math fault\n"); in x86_exception_handler()
258 exception_die(frame, "simd math fault\n"); in x86_exception_handler()
266 x86_unhandled_exception(frame); in x86_exception_handler()
271 ret = platform_irq(frame); in x86_exception_handler()