Fixes to x86 error and interrupt handling
[tpg/acess2.git] / Kernel / arch / x86 / time.c
index 9cccec7..5f7d592 100644 (file)
@@ -3,7 +3,7 @@
  * Timekeeping
  * arch/x86/time.c
  */
-#include <common.h>
+#include <acess.h>
 
 // === MACROS ===
 #define        NUM_TIMERS      8
@@ -80,17 +80,17 @@ void Time_Interrupt()
        
        //Log("giTimestamp = %lli", giTimestamp);
        
-       //Timer_CallTimers();
+       Timer_CallTimers();
 
        // Make sure the RTC Fires again
        outb(0x70, 0x0C); // Select register C
        inb(0x71);      // Just throw away contents.
 }
 
+#if 0
 /**
  * \fn void Time_TimerThread()
  */
-#if 0
 void Time_TimerThread()
 {
        Sint64  next;
@@ -127,9 +127,7 @@ void Timer_CallTimers()
                i < NUM_TIMERS;
                i ++)
        {
-               //Log("Timer %i", i);
                if(gTimers[i].Callback == NULL) continue;
-               Log("%i - %lli < %lli", i, giTimestamp, gTimers[i].FiresAfter);
                if(giTimestamp < gTimers[i].FiresAfter) continue;
                callback = gTimers[i].Callback;
                gTimers[i].Callback = NULL;
@@ -154,8 +152,8 @@ int Time_CreateTimer(int Delta, void *Callback, void *Argument)
                gTimers[ret].Callback = Callback;
                gTimers[ret].FiresAfter = giTimestamp + Delta;
                gTimers[ret].Argument = Argument;
-               Log("Callback = %p", Callback);
-               Log("Timer %i fires at %lli", ret, gTimers[ret].FiresAfter);
+               //Log("Callback = %p", Callback);
+               //Log("Timer %i fires at %lli", ret, gTimers[ret].FiresAfter);
                return ret;
        }
        return -1;
@@ -179,3 +177,9 @@ void Time_Delay(int Delay)
        Sint64  dest = giTimestamp + Delay;
        while(dest < giTimestamp)       Threads_Yield();
 }
+
+// === EXPORTS ===
+EXPORT(now);
+EXPORT(Time_CreateTimer);
+EXPORT(Time_RemoveTimer);
+EXPORT(Time_Delay);

UCC git Repository :: git.ucc.asn.au