Changes in kernel/arch/mips32/src/interrupt.c [a35b458:24abb85d] in mainline
- File:
-
- 1 edited
-
kernel/arch/mips32/src/interrupt.c (modified) (6 diffs)
Legend:
- Unmodified
- Added
- Removed
-
kernel/arch/mips32/src/interrupt.c
ra35b458 r24abb85d 132 132 /* Count overflow detected */ 133 133 count_hi++; 134 134 135 135 lastcount = cp0_count_read(); 136 136 137 137 unsigned long drift = cp0_count_read() - nextcount; 138 138 while (drift > cp0_compare_value) { … … 140 140 CPU->missed_clock_ticks++; 141 141 } 142 142 143 143 nextcount = cp0_count_read() + cp0_compare_value - drift; 144 144 cp0_compare_write(nextcount); 145 145 146 146 /* 147 147 * We are holding a lock which prevents preemption. … … 151 151 clock(); 152 152 irq_spinlock_lock(&irq->lock, false); 153 153 154 154 if (virtual_timer_fnc != NULL) 155 155 virtual_timer_fnc(); … … 172 172 { 173 173 irq_init(IRQ_COUNT, IRQ_COUNT); 174 174 175 175 irq_initialize(&timer_irq); 176 176 timer_irq.inr = TIMER_IRQ; … … 178 178 timer_irq.handler = timer_irq_handler; 179 179 irq_register(&timer_irq); 180 180 181 181 timer_start(); 182 182 cp0_unmask_int(TIMER_IRQ); 183 183 184 184 #ifdef MACHINE_msim 185 185 irq_initialize(&dorder_irq); … … 188 188 dorder_irq.handler = dorder_irq_handler; 189 189 irq_register(&dorder_irq); 190 190 191 191 cp0_unmask_int(DORDER_IRQ); 192 192 #endif
Note:
See TracChangeset
for help on using the changeset viewer.
