The Pedigree Project 0.1
Public Member Functions | Static Public Member Functions | Protected Member Functions | Private Member Functions | List of all members
InterruptManager Class Referenceabstract

Handles interrupts and interrupt registrations from kernel components. More...

#include <InterruptManager.h>

+ Inheritance diagram for InterruptManager:
+ Collaboration diagram for InterruptManager:

Public Member Functions

virtual bool registerInterruptHandler (size_t nInterruptNumber, InterruptHandler *pHandler)=0
 
virtual bool registerInterruptHandlerDebugger (size_t nInterruptNumber, InterruptHandler *pHandler)=0
 
virtual size_t getBreakpointInterruptNumber () PURE=0
 
virtual size_t getDebugInterruptNumber () PURE=0
 

Static Public Member Functions

static EXPORTED_PUBLIC InterruptManager & instance ()
 

Protected Member Functions

 InterruptManager ()
 
virtual ~InterruptManager ()
 

Private Member Functions

 InterruptManager (const InterruptManager &)
 
InterruptManager & operator= (const InterruptManager &)
 

Detailed Description

Handles interrupts and interrupt registrations from kernel components.

The interrupt manager allows interrupt handler registrations and handles interrupts.

Definition at line 35 of file include/pedigree/kernel/processor/InterruptManager.h.

Constructor & Destructor Documentation

◆ InterruptManager() [1/2]

InterruptManager::InterruptManager ( )
protecteddefault

The constructor

◆ ~InterruptManager()

InterruptManager::~InterruptManager ( )
protectedvirtualdefault

The destructor

◆ InterruptManager() [2/2]

InterruptManager::InterruptManager ( const InterruptManager &  )
private

The copy-constructor

Note
Not implemented (singleton)

Member Function Documentation

◆ getBreakpointInterruptNumber()

virtual size_t InterruptManager::getBreakpointInterruptNumber ( )
pure virtual

Get the interrupt number of the breakpoint exception

Returns
the interrupt number of the breakpoint exception

Implemented in Arm64InterruptManager, Armv7InterruptManager, HostedInterruptManager, and X64InterruptManager.

◆ getDebugInterruptNumber()

virtual size_t InterruptManager::getDebugInterruptNumber ( )
pure virtual

Get the interrupt number of the debug exception

Returns
the interrupt number of the debug exception

Implemented in Arm64InterruptManager, Armv7InterruptManager, HostedInterruptManager, and X64InterruptManager.

◆ instance()

InterruptManager & InterruptManager::instance ( )
static

Get the interrupt manager instance

Returns
instance of the interrupt manager

Definition at line 64 of file arm64/InterruptManager.cc.

Referenced by Debugger::initialise(), NMFaultHandler::initialise(), PageFaultHandler::initialise(), Pic::initialise(), HostedInterruptManager::interrupt(), and Debugger::interrupt().

+ Here is the caller graph for this function:

◆ operator=()

InterruptManager & InterruptManager::operator= ( const InterruptManager &  )
private

The copy-constructor

Note
Not implemented (singleton)

◆ registerInterruptHandler()

virtual bool InterruptManager::registerInterruptHandler ( size_t  nInterruptNumber,
InterruptHandler *  pHandler 
)
pure virtual

Register an interrupt handler

Parameters
[in]nInterruptNumberthe interrupt's number
[in]pHandlerthe interrupt handler
Returns
true, if successfully registered, false otherwise

Implemented in HostedInterruptManager, X64InterruptManager, Arm64InterruptManager, and Armv7InterruptManager.

Referenced by NMFaultHandler::initialise(), PageFaultHandler::initialise(), and Pic::initialise().

+ Here is the caller graph for this function:

◆ registerInterruptHandlerDebugger()

virtual bool InterruptManager::registerInterruptHandlerDebugger ( size_t  nInterruptNumber,
InterruptHandler *  pHandler 
)
pure virtual

Register an interrupt handler (for the kernel debugger)

Parameters
[in]nInterruptNumberthe interrupt's number
[in]pHandlerthe interrupt handler
Returns
true, if successfully registered, false otherwise

Implemented in HostedInterruptManager, X64InterruptManager, Arm64InterruptManager, and Armv7InterruptManager.


The documentation for this class was generated from the following files: