|
The Pedigree Project
0.1
|
#include <IrqManager.h>
Inheritance diagram for IrqManager:
Collaboration diagram for IrqManager: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().
Here is the caller graph for this function:
|
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().
Here is the caller graph for this function:
|
pure virtual |
Register a PCI irq
Implemented in Pic, and HostedIrqManager.
Referenced by Ehci::initialiseController().
Here is the caller graph for this function:
|
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().
Here is the caller graph for this function:
|
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().
Here is the caller graph for this function:
1.8.11