* Introduce a (private) flag B_NO_HANDLED_INFO for install_io_interrupt_handler.

It causes the interrupt handler to be inserted at the very end of the list
  instead of at the top. It is intended to be used as a workaround when a
  interrupt handler cannot know if it actually handled the interrupt. This
  should never be used by native drivers. Also if we know that the result is
  not valid because of this flag we won't disable the vector in case we count
  many unhandled interrupts as those numbers are then unreliable.
* Moved B_NO_LOCK_VECTOR to be a private flag as well.
* Made the interrupt handler list a simple manually maintaned singly linked list
  instead of the doubly linked one used with insque and remque as it greatly
  simplifies things for such an easy use case and is more compact.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@29241 a95241bf-73f2-0310-859d-f6bbb57e9c96
This commit is contained in:
Michael Lotz
2009-02-17 21:41:51 +00:00
parent 83aff015eb
commit 3684e40bb8
4 changed files with 64 additions and 27 deletions
-1
View File
@@ -51,7 +51,6 @@ typedef int32 (*interrupt_handler)(void *data);
/* Flags that can be passed to install_io_interrupt_handler() */
#define B_NO_ENABLE_COUNTER 1
#define B_NO_LOCK_VECTOR 2
/* timer interrupts services */