Changes in kernel/arch/ppc32/src/interrupt.c [df7f5cea:b2fa1204] in mainline
- File:
-
- 1 edited
-
kernel/arch/ppc32/src/interrupt.c (modified) (5 diffs)
Legend:
- Unmodified
- Added
- Removed
-
kernel/arch/ppc32/src/interrupt.c
rdf7f5cea rb2fa1204 36 36 #include <interrupt.h> 37 37 #include <arch/interrupt.h> 38 #include <arch/istate.h>39 38 #include <typedefs.h> 40 39 #include <arch.h> 40 #include <time/clock.h> 41 41 #include <ipc/sysipc.h> 42 42 #include <arch/drivers/pic.h> … … 46 46 #include <log.h> 47 47 48 static uint32_t decrementer_value; 49 50 void decrementer_start(uint32_t val) 51 { 52 decrementer_value = val; 53 decrementer_restart(); 54 } 55 56 void decrementer_restart(void) 48 void start_decrementer(void) 57 49 { 58 50 asm volatile ( 59 51 "mtdec %[dec]\n" 60 :: [dec] "r" ( decrementer_value)52 :: [dec] "r" (1000) 61 53 ); 62 54 } … … 112 104 { 113 105 uint8_t inum; 114 106 115 107 while ((inum = pic_get_pending()) != 255) { 116 108 irq_t *irq = irq_dispatch_and_lock(inum); … … 146 138 } 147 139 148 static void exception_fp_unavailable(unsigned int n, istate_t *istate)149 {150 #ifdef CONFIG_FPU_LAZY151 scheduler_fpu_lazy_request();152 /*153 * Propagate MSR_FP from MSR back to istate's SRR1, which will become154 * the next MSR.155 */156 istate->srr1 |= msr_read() & MSR_FP;157 #else158 fault_if_from_uspace(istate, "FPU fault.");159 panic_badtrap(istate, n, "FPU fault.");160 #endif161 }162 163 140 static void exception_decrementer(unsigned int n, istate_t *istate) 164 141 { 165 decrementer_restart();142 start_decrementer(); 166 143 clock(); 167 144 } … … 176 153 exc_register(VECTOR_EXTERNAL, "external", true, 177 154 exception_external); 178 exc_register(VECTOR_FP_UNAVAILABLE, "fp_unavailable", true,179 exception_fp_unavailable);180 155 exc_register(VECTOR_DECREMENTER, "timer", true, 181 156 exception_decrementer);
Note:
See TracChangeset
for help on using the changeset viewer.
