diff --git a/src/sys/kernel/idletask.c b/src/sys/kernel/idletask.c index f037053..e32ec9f 100644 --- a/src/sys/kernel/idletask.c +++ b/src/sys/kernel/idletask.c @@ -28,9 +28,37 @@ *****************************************************************************************/ #include +#include +#include +#include +#include +#include void idleTask() { + mpiMessage_t myMsg; + uInt32 counter = 0x0; + + if (mpiCreateMbox("system") != 0x0) { + kpanic("Error: Error creating mailbox: system\n"); + } + while(1) { + if (mpiFetchMessage("system",&myMsg) == 0x0) { + switch(myMsg.type) { + case 1000: + kprintf("Restarting the system in 5 seconds\n"); + counter = systemVitals->sysUptime + 5; + while (systemVitals->sysUptime < counter) { + asm("hlt"); + } + while(inportByte(0x64) & 0x02); + outportByte(0x64, 0xFE); + break; + default: + kprintf("system: Received message %i:%s\n",myMsg.type,myMsg.data); + break; + } + } asm("hlt"); } return; @@ -38,6 +66,9 @@ /*** $Log$ + Revision 1.6 2004/05/25 18:42:28 reddawg + Idle task now just does what it is suposed to + Revision 1.5 2004/05/25 17:30:16 reddawg IDLE task will be our toy task to test things with