X-Git-Url: https://git.ucc.asn.au/?a=blobdiff_plain;ds=sidebyside;f=Kernel%2Ftime.c;h=54ef08fc065a3d5f26241fe6d5e977c5c5d71d6b;hb=881a49e0164c582d24db527e474f587a8b5e0c32;hp=e8206efa8970ec78032b04985507eb955e254891;hpb=fed0a8f469f7b187d26c0c8cb109bfd6930efaee;p=tpg%2Facess2.git diff --git a/Kernel/time.c b/Kernel/time.c index e8206efa..54ef08fc 100644 --- a/Kernel/time.c +++ b/Kernel/time.c @@ -17,24 +17,15 @@ typedef struct sTimer { } tTimer; // === PROTOTYPES === -void Timer_CallTimers(); +void Timer_CallTimers(void); // === GLOBALS === -Uint64 giTicks = 0; -Sint64 giTimestamp = 0; -Uint64 giPartMiliseconds = 0; -tTimer gTimers[NUM_TIMERS]; +volatile Uint64 giTicks = 0; +volatile Sint64 giTimestamp = 0; +volatile Uint64 giPartMiliseconds = 0; +tTimer gTimers[NUM_TIMERS]; // TODO: Replace by a ring-list timer // === CODE === -/** - * \fn Sint64 now() - * \brief Return the current timestamp - */ -Sint64 now() -{ - return giTimestamp; -} - /** * \fn void Timer_CallTimers() */ @@ -42,23 +33,22 @@ void Timer_CallTimers() { int i; void (*callback)(void *); + void *arg; - for(i = 0; - i < NUM_TIMERS; - i ++) + for(i = 0; i < NUM_TIMERS; i ++) { if(gTimers[i].Callback == NULL) continue; if(giTimestamp < gTimers[i].FiresAfter) continue; - callback = gTimers[i].Callback; + callback = gTimers[i].Callback; arg = gTimers[i].Argument; gTimers[i].Callback = NULL; - callback(gTimers[i].Argument); + callback(arg); } } /** - * \fn int Time_CreateTimer(int Delta, void *Callback, void *Argument) + * \fn int Time_CreateTimer(int Delta, tTimerCallback *Callback, void *Argument) */ -int Time_CreateTimer(int Delta, void *Callback, void *Argument) +int Time_CreateTimer(int Delta, tTimerCallback *Callback, void *Argument) { int ret; @@ -95,7 +85,9 @@ void Time_RemoveTimer(int ID) void Time_Delay(int Delay) { Sint64 dest = giTimestamp + Delay; - while(dest < giTimestamp) Threads_Yield(); + //Log("Time_Delay: dest = %lli", dest); + while(dest > giTimestamp) Threads_Yield(); + //Log("Time_Delay: giTimestamp = %lli", giTimestamp); } // === EXPORTS ===