Changes in kernel/arch/amd64/src/interrupt.c [4b0206c:9d58539] in mainline
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
kernel/arch/amd64/src/interrupt.c
r4b0206c r9d58539 35 35 #include <arch/interrupt.h> 36 36 #include <print.h> 37 #include <log.h>38 37 #include <debug.h> 39 38 #include <panic.h> … … 45 44 #include <mm/as.h> 46 45 #include <arch.h> 46 #include <arch/asm.h> 47 47 #include <proc/scheduler.h> 48 48 #include <proc/thread.h> … … 54 54 #include <symtab.h> 55 55 #include <stacktrace.h> 56 #include <smp/smp_call.h>57 56 58 57 /* … … 67 66 void istate_decode(istate_t *istate) 68 67 { 69 log_printf("cs =%0#18" PRIx64 "\trip=%0#18" PRIx64 "\t"68 printf("cs =%0#18" PRIx64 "\trip=%0#18" PRIx64 "\t" 70 69 "rfl=%0#18" PRIx64 "\terr=%0#18" PRIx64 "\n", 71 70 istate->cs, istate->rip, istate->rflags, istate->error_word); 72 71 73 72 if (istate_from_uspace(istate)) 74 log_printf("ss =%0#18" PRIx64 "\n", istate->ss);75 76 log_printf("rax=%0#18" PRIx64 "\trbx=%0#18" PRIx64 "\t"73 printf("ss =%0#18" PRIx64 "\n", istate->ss); 74 75 printf("rax=%0#18" PRIx64 "\trbx=%0#18" PRIx64 "\t" 77 76 "rcx=%0#18" PRIx64 "\trdx=%0#18" PRIx64 "\n", 78 77 istate->rax, istate->rbx, istate->rcx, istate->rdx); 79 78 80 log_printf("rsi=%0#18" PRIx64 "\trdi=%0#18" PRIx64 "\t"79 printf("rsi=%0#18" PRIx64 "\trdi=%0#18" PRIx64 "\t" 81 80 "rbp=%0#18" PRIx64 "\trsp=%0#18" PRIx64 "\n", 82 81 istate->rsi, istate->rdi, istate->rbp, … … 84 83 (uintptr_t) &istate->rsp); 85 84 86 log_printf("r8 =%0#18" PRIx64 "\tr9 =%0#18" PRIx64 "\t"85 printf("r8 =%0#18" PRIx64 "\tr9 =%0#18" PRIx64 "\t" 87 86 "r10=%0#18" PRIx64 "\tr11=%0#18" PRIx64 "\n", 88 87 istate->r8, istate->r9, istate->r10, istate->r11); 89 88 90 log_printf("r12=%0#18" PRIx64 "\tr13=%0#18" PRIx64 "\t"89 printf("r12=%0#18" PRIx64 "\tr13=%0#18" PRIx64 "\t" 91 90 "r14=%0#18" PRIx64 "\tr15=%0#18" PRIx64 "\n", 92 91 istate->r12, istate->r13, istate->r14, istate->r15); … … 162 161 tlb_shootdown_ipi_recv(); 163 162 } 164 165 static void arch_smp_call_ipi_recv(unsigned int n, istate_t *istate)166 {167 trap_virtual_eoi();168 smp_call_ipi_recv();169 }170 163 #endif 171 164 … … 200 193 */ 201 194 #ifdef CONFIG_DEBUG 202 log(LF_ARCH, LVL_DEBUG, "cpu%u: spurious interrupt (inum=%u)", 203 CPU->id, inum); 195 printf("cpu%u: spurious interrupt (inum=%u)\n", CPU->id, inum); 204 196 #endif 205 197 } … … 222 214 } 223 215 224 exc_register( VECTOR_DE, "de_fault", true, (iroutine_t) de_fault);225 exc_register( VECTOR_NM, "nm_fault", true, (iroutine_t) nm_fault);226 exc_register( VECTOR_SS, "ss_fault", true, (iroutine_t) ss_fault);227 exc_register( VECTOR_GP, "gp_fault", true, (iroutine_t) gp_fault);216 exc_register(0, "de_fault", true, (iroutine_t) de_fault); 217 exc_register(7, "nm_fault", true, (iroutine_t) nm_fault); 218 exc_register(12, "ss_fault", true, (iroutine_t) ss_fault); 219 exc_register(13, "gp_fault", true, (iroutine_t) gp_fault); 228 220 229 221 #ifdef CONFIG_SMP 230 222 exc_register(VECTOR_TLB_SHOOTDOWN_IPI, "tlb_shootdown", true, 231 223 (iroutine_t) tlb_shootdown_ipi); 232 exc_register(VECTOR_SMP_CALL_IPI, "smp_call", true,233 (iroutine_t) arch_smp_call_ipi_recv);234 224 #endif 235 225 }
Note:
See TracChangeset
for help on using the changeset viewer.