Subversion Repositories HelenOS-historic

Compare Revisions

Ignore whitespace Rev 411 → Rev 413

/SPARTAN/trunk/src/time/delay.c
42,12 → 42,15
*/
void delay(__u32 usec)
{
pri_t pri;
ipl_t ipl;
/* The delay loop is calibrated for each and every
CPU in the system. Therefore it is necessary to
cpu_priority_high() before calling the asm_delay_loop(). */
pri = cpu_priority_high();
/*
* The delay loop is calibrated for each and every
* CPU in the system. Therefore it is necessary to
* call interrupts_disable() before calling the
* asm_delay_loop().
*/
ipl = interrupts_disable();
asm_delay_loop(usec * CPU->delay_loop_const);
cpu_priority_restore(pri);
interrupts_restore(ipl);
}
/SPARTAN/trunk/src/time/timeout.c
100,10 → 100,10
{
timeout_t *hlp;
link_t *l, *m;
pri_t pri;
ipl_t ipl;
__u64 sum;
 
pri = cpu_priority_high();
ipl = interrupts_disable();
spinlock_lock(&CPU->timeoutlock);
spinlock_lock(&t->lock);
 
152,7 → 152,7
 
spinlock_unlock(&t->lock);
spinlock_unlock(&CPU->timeoutlock);
cpu_priority_restore(pri);
interrupts_restore(ipl);
}
 
 
168,19 → 168,19
{
timeout_t *hlp;
link_t *l;
pri_t pri;
ipl_t ipl;
 
grab_locks:
pri = cpu_priority_high();
ipl = interrupts_disable();
spinlock_lock(&t->lock);
if (!t->cpu) {
spinlock_unlock(&t->lock);
cpu_priority_restore(pri);
interrupts_restore(ipl);
return false;
}
if (!spinlock_trylock(&t->cpu->timeoutlock)) {
spinlock_unlock(&t->lock);
cpu_priority_restore(pri);
interrupts_restore(ipl);
goto grab_locks;
}
203,6 → 203,6
timeout_reinitialize(t);
spinlock_unlock(&t->lock);
 
cpu_priority_restore(pri);
interrupts_restore(ipl);
return true;
}
/SPARTAN/trunk/src/time/clock.c
44,7 → 44,7
/** Clock routine
*
* Clock routine executed from clock interrupt handler
* (assuming cpu_priority_high()). Runs expired timeouts
* (assuming interrupts_disable()'d). Runs expired timeouts
* and preemptive scheduling.
*
*/