2 Copyright © 1995-2015, The AROS Development Team. All rights reserved.
8 #include <proto/exec.h>
9 #include "exec_intern.h"
10 #include "kernel_intern.h"
11 #include "kernel_cpu.h"
12 #include "kernel_syscall.h"
16 void IdleTask(struct ExecBase
*SysBase
)
19 struct Task
*thisTask
= FindTask(NULL
);
20 int cpunum
= GetCPUNumber();
23 D(bug("[IDLE:%02d] %s started up\n", cpunum
, thisTask
->tc_Node
.ln_Name
));
25 asm volatile ("swi %[swi_no]" : : [swi_no
] "I" (SC_SUPERSTATE
) : "lr");
26 asm volatile ("swi %[swi_no]" : : [swi_no
] "I" (SC_STI
) : "lr");
31 D(bug("[IDLE:%02d] CPU has idled for %d seconds..\n", GetIntETask(thisTask
)->iet_CpuTime
.tv_secs
));
32 asm volatile("mov r0, #0\n\t mcr p15, 0, r0, c7, c0, 4":::"r0");