20 #ifndef KERNEL_MACHINE_X86_COMMON_PIC_H 21 #define KERNEL_MACHINE_X86_COMMON_PIC_H 23 #include "pedigree/kernel/Spinlock.h" 24 #include "pedigree/kernel/compiler.h" 25 #include "pedigree/kernel/machine/IrqManager.h" 26 #include "pedigree/kernel/machine/types.h" 27 #include "pedigree/kernel/processor/InterruptHandler.h" 28 #include "pedigree/kernel/processor/IoPort.h" 29 #include "pedigree/kernel/processor/state_forward.h" 30 #include "pedigree/kernel/processor/types.h" 31 #include "pedigree/kernel/utilities/List.h" 32 #include "pedigree/kernel/utilities/new" 89 virtual void interrupt(
size_t interruptNumber, InterruptState &state);
91 void eoi(uint8_t irq);
92 void enable(uint8_t irq,
bool enable);
93 void enableAll(
bool enable);
virtual irq_id_t registerPciIrqHandler(IrqHandler *handler, Device *pDevice)
virtual void acknowledgeIrq(irq_id_t Id)
#define INITIALISATION_ONLY
Pic & operator=(const Pic &)
virtual bool control(uint8_t irq, ControlCode code, size_t argument)
virtual void unregisterHandler(irq_id_t Id, IrqHandler *handler)
List< IrqHandler * > m_Handler[16]
bool spurious(size_t irq)
Pic() INITIALISATION_ONLY
virtual void interrupt(size_t interruptNumber, InterruptState &state)
Abstract base class for interrupt-handlers.
virtual irq_id_t registerIsaIrqHandler(uint8_t irq, IrqHandler *handler, bool bEdge=false)
bool initialise() INITIALISATION_ONLY
size_t m_MitigationThreshold[16]