Age | Commit message (Collapse) | Author |
|
|
|
|
|
|
|
LogStream can handle VirtualAddress and PhysicalAddress directly.
|
|
|
|
Also, during interrupt handlers' enumeration, we call all interrupts
handlers that are not UnhandledInterruptHandler.
|
|
Also, GenericInterruptHandler class requires to implement two new
methods.
|
|
We install a SpuriousInterruptHandler when calling APIC::enable(),
and we don't enable local interrupts for now.
|
|
Also, InterruptDisabler were added to prevent critical function from
being interrupted. In addition, the interrupt numbers are abstracted
from IDT offsets, thus, allowing to create a better routing scheme
when using IOAPICs for interrupt redirection.
|
|
|
|
Also, duplicate data in dbg() and klog() calls were removed.
In addition, leakage of virtual address to kernel log is prevented.
This is done by replacing kprintf() calls to dbg() calls with the
leaked data instead.
Also, other kprintf() calls were replaced with klog().
|
|
The IRQController object is RefCounted, and is shared between the
InterruptManagement class & IRQ handlers' classes.
IRQHandler, SharedIRQHandler & SpuriousInterruptHandler classes
use a responsible IRQ controller directly instead of calling
InterruptManagement for disable(), enable() or eoi().
Also, the initialization process of InterruptManagement is
simplified, so it doesn't rely on an ACPI parser to be initialized.
|
|
|
|
|
|
This type of interrupt handler should handle spurious IRQs.
|
|
|
|
|
|
Now the ACPI & PCI code is more safer, because we don't use raw pointers
or references to objects or data that are located in the physical
address space, so an accidental dereference cannot happen easily.
Instead, we use the PhysicalAddress class to represent those addresses.
|
|
The new method' name is sharing_devices_count().
The Serenity Coding Style tends to not accept the word "get" in
methods' names if possible.
|
|
Also, the enable() function is now correct and will use the right
registers and values. In addition to that, write_register() and
read_registers() are not relying on identity mapping anymore.
|
|
This is a stub for now, since we don't support Message Signaled
Interrupts yet.
|
|
This class will be used to represent an IRQ vector handler that wasn't
assigned to any IRQ Handler.
|
|
This class represents a shared interrupt handler. This class will not be
created automatically but only if two IRQ Handlers are sharing the same
IRQ number.
|
|
This class will replace the old IRQHandler class later.
|
|
The GenericInterruptHandler class will be used to represent
an abstract interrupt handler. The InterruptManagement class will
represent a centralized component to manage interrupts.
|
|
This class inherits from IRQController class, and represents
the 82093AA IOAPIC chip.
|
|
This class inherits from IRQController class, and represents
the common Intel 8259 PIC chip.
|
|
This class is an abstraction layer for different IRQ controllers
that are present in a typical system.
|