]> rtime.felk.cvut.cz Git - l4.git/blobdiff - kernel/fiasco/src/kern/irq.cpp
update
[l4.git] / kernel / fiasco / src / kern / irq.cpp
index 32c57db766cc0e43d5d5cdd17fef89f4e3cdd9eb..6dc6b8b1f54553b58b4bdbde3657047f886e7fc8 100644 (file)
@@ -72,8 +72,9 @@ private:
 class Irq_muxer : public Kobject_h<Irq_muxer, Irq>, private Irq_chip
 {
 public:
-  unsigned set_mode(Mword, unsigned mode) { return mode; }
-  void switch_mode(unsigned)
+  int set_mode(Mword, Irq_chip::Mode) { return 0; }
+  bool is_edge_triggered(Mword) const { return false; }
+  void switch_mode(bool)
   {
     // the irq object is assumed to be always handled as
     // level triggered
@@ -238,7 +239,6 @@ Irq_muxer::sys_attach(L4_msg_tag const &tag, Utcb const *utcb, Syscall_frame * /
   L4_snd_item_iter snd_items(utcb, tag.words());
 
   Irq *irq = 0;
-  unsigned mode = utcb->values[0] >> 16;
 
   if (tag.items() == 0)
     return commit_result(-L4_err::EInval);
@@ -255,10 +255,6 @@ Irq_muxer::sys_attach(L4_msg_tag const &tag, Utcb const *utcb, Syscall_frame * /
   if (!irq)
     return commit_result(-L4_err::EInval);
 
-  if (mode & Set_irq_mode)
-    printf("DEPRECATED SET IRQ MODE\n");
-    //pin()->set_mode(mode);
-
   irq->unbind();
 
   if (!irq->masked())
@@ -378,12 +374,9 @@ Irq_sender::Irq_sender(Ram_quota *q = 0)
 
 PUBLIC
 void
-Irq_sender::switch_mode(unsigned mode)
+Irq_sender::switch_mode(bool is_edge_triggered)
 {
-  if ((mode & Trigger_mask) == Trigger_edge)
-    hit_func = &hit_edge_irq;
-  else
-    hit_func = &hit_level_irq;
+  hit_func = is_edge_triggered ? &hit_edge_irq : &hit_level_irq;
 }
 
 PUBLIC
@@ -587,14 +580,8 @@ Irq_sender::sys_attach(L4_msg_tag const &tag, Utcb const *utcb, Syscall_frame *
   if (tag.items() == 0)
     {
       // detach
-      if (mode & Set_irq_mode)
-       printf("DEPRECATED SET IRQ MODE\n");
-       //pin()->set_mode(mode);
-      else
-       {
-         free(_irq_thread);
-         _irq_id = ~0UL;
-       }
+      free(_irq_thread);
+      _irq_id = ~0UL;
       return commit_result(0);
     }
 
@@ -612,8 +599,6 @@ Irq_sender::sys_attach(L4_msg_tag const &tag, Utcb const *utcb, Syscall_frame *
 
   if (alloc(thread))
     {
-      if (mode & Set_irq_mode)
-       printf("DEPRECATED SET IRQ MODE\n");
       _irq_id = utcb->values[1];
       return commit_result(0);
     }