X-Git-Url: http://v3vee.org/palacios/gitweb/gitweb.cgi?a=blobdiff_plain;f=geekos%2Fsrc%2Fgeekos%2Ftimer.c;h=8409fd704ea608cc5dd3e499fce26ff9c6843a35;hb=ddd9fd13627552b915753b06be997921cc904466;hp=e287b6e21b8d12fd86be97e58b1f55c7934712cb;hpb=d38e1d6edeee83bfb1e3e3c6e2367faa5055bdfe;p=palacios.git diff --git a/geekos/src/geekos/timer.c b/geekos/src/geekos/timer.c index e287b6e..8409fd7 100644 --- a/geekos/src/geekos/timer.c +++ b/geekos/src/geekos/timer.c @@ -22,6 +22,8 @@ #include +#include + /* PAD this currently is in nvram.c */ /* JRL: This is completely broken extern void deliver_timer_interrupt_to_vmm(uint_t period_us); @@ -133,11 +135,6 @@ timerEvent pendingTimerEvents[MAX_TIMER_EVENTS]; */ volatile ulong_t g_numTicks; -ulong_t clock_time(void){ - return g_numTicks; -} - - /* * Number of times the spin loop can execute during one timer tick */ @@ -173,6 +170,10 @@ int g_Quantum = DEFAULT_MAX_TICKS; # define Debug(args...) #endif +ulong_t clock_time(void){//in millisec + return g_numTicks * (1000/HZ); +} + /* ---------------------------------------------------------------------- * Private functions * ---------------------------------------------------------------------- */ @@ -219,9 +220,9 @@ static void Timer_Interrupt_Handler(struct Interrupt_State* state) } - /* JRL: Broken, - deliver_timer_interrupt_to_vmm(1000000/HZ); - */ + + send_tick_to_vmm(1000000/HZ); + End_IRQ(state); } @@ -359,6 +360,8 @@ int Start_Timer(int ticks, timerCallback cb, void * arg) KASSERT(!Interrupts_Enabled()); + PrintBoth ("there\n"); + if (timeEventCount == MAX_TIMER_EVENTS) { return -1; } else {