]> rtime.felk.cvut.cz Git - l4.git/blobdiff - kernel/fiasco/src/kern/timer-hpet.cpp
update
[l4.git] / kernel / fiasco / src / kern / timer-hpet.cpp
index f3b37914379e04fdc90c0f65ca69e1c78f286227..a04ba2960cf0b5f23701f3b429200c5eba4784ca 100644 (file)
@@ -5,6 +5,7 @@ class Irq_base;
 EXTENSION class Timer
 {
   static Irq_base *irq;
+  static int hpet_irq;
 };
 
 IMPLEMENTATION [hpet_timer]:
@@ -21,18 +22,19 @@ IMPLEMENTATION [hpet_timer]:
 #include <cstdio>
 
 Irq_base *Timer::irq;
+int Timer::hpet_irq;
 
 IMPLEMENT
 void
 Timer::init()
 {
+  hpet_irq = -1;
   if (!Hpet::init())
     return;
 
-  int hpet_irq = Hpet::int_num();
+  hpet_irq = Hpet::int_num();
   if (hpet_irq == 0 && Hpet::int_avail(2))
     hpet_irq = 2;
-  Config::scheduler_irq_vector = hpet_irq + 0x20;
 
   if (Config::scheduler_one_shot)
     {
@@ -54,11 +56,13 @@ Timer::init()
   Hpet::enable();
   Hpet::dump();
 
-  printf("Using HPET timer on IRQ %d / vector %x (%s Mode) for scheduling\n",
-         hpet_irq, Config::scheduler_irq_vector,
+  printf("Using HPET timer on IRQ %d (%s Mode) for scheduling\n",
+         hpet_irq,
          Config::scheduler_one_shot ? "One-Shot" : "Periodic");
 }
 
+IMPLEMENT inline int Timer::irq_line() { return hpet_irq; }
+
 IMPLEMENT inline NEEDS["irq_pin.h"]
 void
 Timer::acknowledge()