* Implement interrupt source overrides. We install a relay interrupt handler

at the override entry to trigger the overriden vector so that we don't need
  to configure any additional redirections.
* Also configures the polarity and trigger modes found in the override entry.
* When disabling the legacy PIC, retrieve the enabled interrupts and re-enable
  then in the IO-APIC. This will for example make the ACPI SCI work that is
  installed prior to switching interrupt models. Through the transparent support
  for interrupt source overrides it'll also automatically relay from the old to
  the new vector.

This should make ACPI interrupts work and should support relocating the ISA PIT
from irq 0 to a different global system interrupt (usually 2) so that it can
still work when IO-APICs are in use.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@41528 a95241bf-73f2-0310-859d-f6bbb57e9c96
This commit is contained in:
Michael Lotz
2011-05-16 12:57:40 +00:00
parent 9c1714ec1a
commit fb5a1727f4
3 changed files with 118 additions and 27 deletions
+3 -1
View File
@@ -5,7 +5,9 @@
#ifndef _KERNEL_ARCH_x86_PIC_H
#define _KERNEL_ARCH_x86_PIC_H
#include <SupportDefs.h>
void pic_init();
void pic_disable();
void pic_disable(uint16& enabledInterrupts);
#endif // _KERNEL_ARCH_x86_PIC_H