X-Git-Url: http://v3vee.org/palacios/gitweb/gitweb.cgi?a=blobdiff_plain;f=palacios%2Fsrc%2Fgeekos%2Ftimer.c;h=7c15550fd4100b0bb481965f884788559fc4571a;hb=a868ff7325e5f94ee3a40198f14b96acc4b311bc;hp=dbda61f7d67ef88026b408ec53d482f357ecb122;hpb=a4b341afa075a6620dd087ee3a8ed850730c05c7;p=palacios-OLD.git diff --git a/palacios/src/geekos/timer.c b/palacios/src/geekos/timer.c index dbda61f..7c15550 100644 --- a/palacios/src/geekos/timer.c +++ b/palacios/src/geekos/timer.c @@ -2,7 +2,7 @@ * GeekOS timer interrupt support * Copyright (c) 2001,2003 David H. Hovemeyer * Copyright (c) 2003, Jeffrey K. Hollingsworth - * $Revision: 1.6 $ + * $Revision: 1.9 $ * * This is free software. You are permitted to use, * redistribute, and modify it as specified in the file "COPYING". @@ -19,6 +19,9 @@ #include +/* PAD this currently is in nvram.c */ +extern void deliver_timer_interrupt_to_vmm(uint_t period_us); + /* JRL Add a cpu frequency measurement */ uint_t cpu_khz_freq; @@ -206,13 +209,22 @@ static void Timer_Interrupt_Handler(struct Interrupt_State* state) Begin_IRQ(state); + + +#if 0 +#define STACK_LEN 256 + SerialPrint("Host Timer Interrupt Handler running\n"); + SerialPrint("Timer====\n"); + Dump_Interrupt_State(state); + // SerialMemDump((unsigned char*)(¤t),STACK_LEN); + SerialPrint("Timer done===\n"); +#endif /* Update global and per-thread number of ticks */ ++g_numTicks; ++current->numTicks; - /* * If thread has been running for an entire quantum, * inform the interrupt return code that we want @@ -223,6 +235,8 @@ static void Timer_Interrupt_Handler(struct Interrupt_State* state) } + deliver_timer_interrupt_to_vmm(1000000/HZ); + End_IRQ(state); }