Lines Matching +full:non +full:- +full:maskable
3 * SPDX-License-Identifier: Apache-2.0
22 * -device isa-debug-exit,iobase=0xf4,iosize=0x04 in arch_system_halt()
27 * It has been observed that if the emulator exits for a triple-fault in arch_system_halt()
41 return esf->rsp; in esf_get_sp()
43 return esf->esp; in esf_get_sp()
58 cpu_id = arch_curr_cpu()->id; in z_x86_check_stack_bounds()
67 (arch_current_thread()->base.user_options & K_USER) != 0) { in z_x86_check_stack_bounds()
75 start = arch_current_thread()->stack_info.start - CONFIG_PRIVILEGED_STACK_SIZE; in z_x86_check_stack_bounds()
76 end = arch_current_thread()->stack_info.start; in z_x86_check_stack_bounds()
80 start = arch_current_thread()->stack_info.start; in z_x86_check_stack_bounds()
81 end = Z_STACK_PTR_ALIGN(arch_current_thread()->stack_info.start + in z_x86_check_stack_bounds()
82 arch_current_thread()->stack_info.size); in z_x86_check_stack_bounds()
103 /* Front guard size - before thread stack area */ in z_x86_check_guard_page()
104 start = (uintptr_t)thread->stack_info.mapped.addr - CONFIG_MMU_PAGE_SIZE; in z_x86_check_guard_page()
105 end = (uintptr_t)thread->stack_info.mapped.addr; in z_x86_check_guard_page()
111 /* Rear guard size - after thread stack area */ in z_x86_check_guard_page()
112 start = (uintptr_t)thread->stack_info.mapped.addr + thread->stack_info.mapped.sz; in z_x86_check_guard_page()
139 base_ptr = esf->rbp; in walk_stackframe()
140 #else /* x86 32-bit */ in walk_stackframe()
141 base_ptr = esf->ebp; in walk_stackframe()
143 cs = esf->cs; in walk_stackframe()
175 if (frame->ret_addr == 0U) { in walk_stackframe()
179 if (!cb(cookie, frame->ret_addr)) { in walk_stackframe()
183 base_ptr = frame->next; in walk_stackframe()
223 return esf->code; in esf_get_code()
225 return esf->errorCode; in esf_get_code()
235 if ((esf->cs & 0x3) != 0) { in get_cr3()
236 return arch_current_thread()->arch.ptables; in get_cr3()
257 esf->rax, esf->rbx, esf->rcx, esf->rdx); in dump_regs()
259 esf->rsi, esf->rdi, esf->rbp, esf->rsp); in dump_regs()
261 esf->r8, esf->r9, esf->r10, esf->r11); in dump_regs()
263 esf->r12, esf->r13, esf->r14, esf->r15); in dump_regs()
265 esf->rsp, esf->rflags, esf->cs & 0xFFFFU, get_cr3(esf)); in dump_regs()
267 LOG_ERR("RIP: 0x%016lx", esf->rip); in dump_regs()
269 #else /* 32-bit */
274 esf->eax, esf->ebx, esf->ecx, esf->edx); in dump_regs()
276 esf->esi, esf->edi, esf->ebp, esf->esp); in dump_regs()
277 LOG_ERR("EFLAGS: 0x%08x CS: 0x%04x CR3: 0x%08lx", esf->eflags, in dump_regs()
278 esf->cs & 0xFFFFU, get_cr3(esf)); in dump_regs()
280 LOG_ERR("EIP: 0x%08x", esf->eip); in dump_regs()
295 LOG_ERR("Non-maskable interrupt"); in log_exception()
316 LOG_ERR("Co-processor segment overrun"); in log_exception()
402 if (esf->rip == 0xb9) { in z_x86_fatal_error()
407 LOG_ERR("Attempt to resume un-suspended thread object"); in z_x86_fatal_error()
440 if ((esf->errorCode & PF_P) == 0) { in z_x86_page_fault_handler()
441 /* Page was non-present at time exception happened. in z_x86_page_fault_handler()
449 bool was_user = ((esf->cs & 0x3) != 0U); in z_x86_page_fault_handler()
452 * that hit a non-present page that was flipped due to KPTI in in z_x86_page_fault_handler()
459 * instruction will just be re-tried, producing another fault. in z_x86_page_fault_handler()
471 /* Page fault handled, re-try */ in z_x86_page_fault_handler()
486 if ((void *)esf->rip >= exceptions[i].start && in z_x86_page_fault_handler()
487 (void *)esf->rip < exceptions[i].end) { in z_x86_page_fault_handler()
488 esf->rip = (uint64_t)(exceptions[i].fixup); in z_x86_page_fault_handler()
492 if ((void *)esf->eip >= exceptions[i].start && in z_x86_page_fault_handler()
493 (void *)esf->eip < exceptions[i].end) { in z_x86_page_fault_handler()
494 esf->eip = (unsigned int)(exceptions[i].fixup); in z_x86_page_fault_handler()
504 if (z_x86_check_stack_bounds(esf_get_sp(esf), 0, esf->cs)) { in z_x86_page_fault_handler()
526 reason = esf->rax; in z_x86_do_kernel_oops()
528 uintptr_t *stack_ptr = (uintptr_t *)esf->esp; in z_x86_do_kernel_oops()
537 if ((esf->cs & 0x3) != 0 && !(reason == K_ERR_KERNEL_OOPS || in z_x86_do_kernel_oops()