summaryrefslogtreecommitdiff
path: root/Kernel/Interrupts/SpuriousInterruptHandler.h
AgeCommit message (Collapse)Author
2021-07-11Kernel: Make various T::class_name() and similar return StringViewAndreas Kling
Instead of returning char const*, we can also give you a StringView.
2021-06-24Kernel: Remove unused CPU.h includesHendiadyoin1
In most cases we did not need it at all, in other, we only needed one header from it
2021-06-17Kernel/Interrupts: Return boolean on whether we handled the interruptLiav A
If we are in a shared interrupt handler, the called handlers might indicate it was not their interrupt, so we should not increment the call counter of these handlers.
2021-04-22Everything: Move to SPDX license identifiers in all files.Brian Gianforcaro
SPDX License Identifiers are a more compact / standardized way of representing file license information. See: https://spdx.dev/resources/use/#identifiers This was done with the `ambr` search and replace tool. ambr --no-parent-ignore --key-from-file --rep-from-file key.txt rep.txt *
2021-03-23Kernel: Return real handler purpose when registered to spurious handlerLiav A
If we registered a real interrupt handler to a spurious one, we should return its purpose instead of the spurious purpose string.
2021-03-21Kernel::CPU: Move headers into common directoryHendiadyoin1
Alot of code is shared between i386/i686/x86 and x86_64 and a lot probably will be used for compatability modes. So we start by moving the headers into one Directory. We will probalby be able to move some cpp files aswell.
2020-12-21Kernel: Allow to install a real IRQ handler on a spurious oneLiav A
IRQ 7 and 15 on the PIC architecture are used for spurious interrupts. IRQ 7 could also be used for LPT connection, and IRQ 15 can be used for the secondary IDE channel. Therefore, we need to allow to install a real IRQ handler and check if a real IRQ was asserted. If so, we handle them in the usual way. A note on this fix - unregistering or registering a new IRQ handler after we already registered one in the spurious interrupt handler is not supported yet.
2020-08-17Kernel: Remove unneeded header (#3196)Muhammad Zahalqa
AK/HashTable.h is not needed from SpuriousInterruptHandler
2020-03-24Kernel: Correct Spurious Interrupt handlers' controller model() methodLiav A
We don't return blindly the IRQ controller's model(), if the Spurious IRQ handler is installed in IOAPIC environment, it's misleading to return "IOAPIC" string since IOAPIC doesn't really handle Spurious IRQs, therefore we return a "" string.
2020-03-22Kernel: Run clang-format on filesShannon Booth
Let's rip off the band-aid
2020-03-19Kernel: Use a const reference to RegisterState in IRQ handlingLiav A
2020-03-06Kernel: Change HandlerPurpose to HandlerTypeLiav A
Also, GenericInterruptHandler class requires to implement two new methods.
2020-03-06Kernel: Simplify APIC::enable()Liav A
We install a SpuriousInterruptHandler when calling APIC::enable(), and we don't enable local interrupts for now.
2020-02-29Kernel: Simplify interrupt managementLiav A
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.
2020-02-29Kernel: Add SpuriousInterruptHandler classLiav A
This type of interrupt handler should handle spurious IRQs.