Merge branch 'master' of postpeta.pccluster.org:mckernel

This commit is contained in:
Tomoki Shirasawa
2014-06-25 13:45:46 +09:00
3 changed files with 12 additions and 6 deletions

View File

@ -510,6 +510,11 @@ void cpu_halt(void)
asm volatile("hlt");
}
void cpu_safe_halt(void)
{
asm volatile("sti; hlt");
}
void cpu_enable_interrupt(void)
{
asm volatile("sti");

View File

@ -1554,16 +1554,16 @@ void release_process(struct process *proc)
static void idle(void)
{
//unsigned int flags;
//flags = ihk_mc_spinlock_lock(&cpu_status_lock);
//ihk_mc_spinlock_unlock(&cpu_status_lock, flags);
cpu_local_var(status) = CPU_STATUS_IDLE;
cpu_enable_interrupt();
while (1) {
cpu_enable_interrupt();
schedule();
//cpu_local_var(status) = CPU_STATUS_IDLE;
cpu_halt();
cpu_disable_interrupt();
if (cpu_local_var(status) == CPU_STATUS_IDLE)
cpu_safe_halt();
else
cpu_enable_interrupt();
}
}

View File

@ -19,6 +19,7 @@
void cpu_enable_interrupt(void);
void cpu_disable_interrupt(void);
void cpu_halt(void);
void cpu_safe_halt(void);
void cpu_restore_interrupt(unsigned long);
void cpu_pause(void);