The Pedigree Project
0.1
|
#include <IrqManager.h>
Public Types | |
enum | ControlCode { MitigationThreshold } |
Public Member Functions | |
virtual irq_id_t | registerIsaIrqHandler (uint8_t irq, IrqHandler *handler, bool bEdge=false)=0 |
virtual irq_id_t | registerPciIrqHandler (IrqHandler *handler, Device *pDevice)=0 |
virtual void | acknowledgeIrq (irq_id_t Id)=0 |
virtual void | unregisterHandler (irq_id_t Id, IrqHandler *handler)=0 |
virtual void | enable (uint8_t irq, bool enable)=0 |
virtual void | tick () |
virtual bool | control (uint8_t irq, ControlCode code, size_t argument) |
Protected Member Functions | |
IrqManager () | |
virtual | ~IrqManager () |
Private Member Functions | |
IrqManager (const IrqManager &) | |
IrqManager & | operator= (const IrqManager &) |
This class handles IRQ (un)registration
Definition at line 33 of file include/pedigree/kernel/machine/IrqManager.h.
Control codes for the control function
Definition at line 37 of file include/pedigree/kernel/machine/IrqManager.h.
|
protecteddefault |
The default constructor
|
protectedvirtualdefault |
The destructor
|
private |
The copy-constructor
|
pure virtual |
Acknoledge the IRQ reception, in case you returned false in the IrqHandler::irq() function. If this is not called there won't be any following irqs.
[in] | Id | the irq's identifier |
Implemented in OpenPic, Pic, HostedIrqManager, Pic, and Heathrow.
|
virtual |
Controls specific elements of a given IRQ
Reimplemented in Pic, and HostedIrqManager.
Definition at line 29 of file IrqManager.cc.
Referenced by Ehci::initialiseController().
|
private |
The assignment operator
|
pure virtual |
Register an ISA irq
[in] | irq | the ISA irq number (from 0 to 15) |
[in] | handler | pointer to the IrqHandler class |
[in] | bEdge | whether this IRQ is edge triggered or not |
Implemented in Pic, and HostedIrqManager.
Referenced by Pit::initialise(), HostedSchedulerTimer::initialise(), HostedTimer::initialise(), Rtc::initialise2(), CdiIrqHandler::irq(), Ne2k::Ne2k(), Nic3C90x::Nic3C90x(), and PciAtaController::PciAtaController().
|
pure virtual |
Register a PCI irq
Implemented in Pic, and HostedIrqManager.
Referenced by Ehci::initialiseController().
|
virtual |
Called every millisecond, typically handles IRQ mitigation.
Reimplemented in Pic, and HostedIrqManager.
Definition at line 25 of file IrqManager.cc.
Referenced by HostedTimer::irq(), and Rtc::irq().
|
pure virtual |
Unregister a previously registered IrqHandler
[in] | Id | the irq's identifier |
Implemented in OpenPic, Pic, HostedIrqManager, Pic, and Heathrow.
Referenced by Pit::uninitialise(), HostedSchedulerTimer::uninitialise(), HostedTimer::uninitialise(), and Rtc::uninitialise().