The Pedigree Project  0.1
Public Member Functions | Static Public Member Functions | Private Member Functions | Static Private Member Functions | Private Attributes | Static Private Attributes | List of all members
MIPS32InterruptManager Class Reference

#include <InterruptManager.h>

+ Inheritance diagram for MIPS32InterruptManager:
+ Collaboration diagram for MIPS32InterruptManager:

Public Member Functions

virtual bool registerInterruptHandler (size_t interruptNumber, InterruptHandler *handler)
 
virtual bool registerExternalInterruptHandler (size_t interruptNumber, InterruptHandler *handler)
 
virtual bool registerInterruptHandlerDebugger (size_t interruptNumber, InterruptHandler *handler)
 
virtual size_t getBreakpointInterruptNumber () PURE
 
virtual size_t getDebugInterruptNumber () PURE
 
virtual bool registerSyscallHandler (Service_t Service, SyscallHandler *handler)
 
- Public Member Functions inherited from SyscallManager
virtual uintptr_t syscall (Service_t service, uintptr_t function, uintptr_t p1=0, uintptr_t p2=0, uintptr_t p3=0, uintptr_t p4=0, uintptr_t p5=0)=0
 

Static Public Member Functions

static MIPS32InterruptManagerinstance ()
 
static void initialiseProcessor ()
 
- Static Public Member Functions inherited from InterruptManager
static InterruptManagerinstance ()
 
- Static Public Member Functions inherited from SyscallManager
static EXPORTED_PUBLIC SyscallManagerinstance ()
 

Private Member Functions

 MIPS32InterruptManager ()
 
 MIPS32InterruptManager (const MIPS32InterruptManager &)
 
MIPS32InterruptManageroperator= (const MIPS32InterruptManager &)
 
virtual ~MIPS32InterruptManager ()
 

Static Private Member Functions

static void interrupt (InterruptState &interruptState)
 

Private Attributes

InterruptHandlerm_Handler [64]
 
InterruptHandlerm_ExternalHandler [8]
 
InterruptHandlerm_DbgHandler [64]
 
SyscallHandlerm_SyscallHandler [SyscallManager::serviceEnd]
 

Static Private Attributes

static MIPS32InterruptManager m_Instance
 

Additional Inherited Members

- Protected Member Functions inherited from InterruptManager
 InterruptManager ()
 
virtual ~InterruptManager ()
 
- Protected Member Functions inherited from SyscallManager
 SyscallManager ()
 
virtual ~SyscallManager ()
 

Detailed Description

The interrupt handler on mips32 processors

Definition at line 32 of file kernel/core/processor/mips32/InterruptManager.h.

Constructor & Destructor Documentation

MIPS32InterruptManager::MIPS32InterruptManager ( )
private

The constructor

Definition at line 287 of file mips32/InterruptManager.cc.

Referenced by instance().

+ Here is the caller graph for this function:

MIPS32InterruptManager::MIPS32InterruptManager ( const MIPS32InterruptManager )
private

Copy constructor

Note
NOT implemented
MIPS32InterruptManager::~MIPS32InterruptManager ( )
privatevirtual

The destructor

Definition at line 304 of file mips32/InterruptManager.cc.

Referenced by instance().

+ Here is the caller graph for this function:

Member Function Documentation

size_t MIPS32InterruptManager::getBreakpointInterruptNumber ( )
virtual

Get the interrupt number of the breakpoint exception

Returns
the interrupt number of the breakpoint exception

Implements InterruptManager.

Definition at line 124 of file mips32/InterruptManager.cc.

Referenced by instance().

+ Here is the caller graph for this function:

size_t MIPS32InterruptManager::getDebugInterruptNumber ( )
virtual

Get the interrupt number of the debug exception

Returns
the interrupt number of the debug exception

Implements InterruptManager.

Definition at line 128 of file mips32/InterruptManager.cc.

Referenced by instance().

+ Here is the caller graph for this function:

void MIPS32InterruptManager::initialiseProcessor ( )
static

Initialises this processors IDTR

Note
This should only be called from initialiseProcessor()
Todo:
and some smp/acpi function

Definition at line 151 of file mips32/InterruptManager.cc.

Referenced by instance().

+ Here is the caller graph for this function:

static MIPS32InterruptManager& MIPS32InterruptManager::instance ( )
inlinestatic
void MIPS32InterruptManager::interrupt ( InterruptState &  interruptState)
staticprivate

Called when an interrupt was triggered

Parameters
[in]interruptStatereference to the usermode/kernel state before the interrupt

Definition at line 206 of file mips32/InterruptManager.cc.

References Debugger::instance(), LIKELY, and Debugger::start().

Referenced by instance().

+ Here is the caller graph for this function:

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

Assignment operator

Note
NOT implemented

Referenced by instance().

+ Here is the caller graph for this function:

bool MIPS32InterruptManager::registerInterruptHandler ( size_t  nInterruptNumber,
InterruptHandler pHandler 
)
virtual

Register an interrupt handler

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

Implements InterruptManager.

Definition at line 78 of file mips32/InterruptManager.cc.

References UNLIKELY.

Referenced by instance().

+ Here is the caller graph for this function:

bool MIPS32InterruptManager::registerInterruptHandlerDebugger ( size_t  nInterruptNumber,
InterruptHandler pHandler 
)
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

Implements InterruptManager.

Definition at line 110 of file mips32/InterruptManager.cc.

References UNLIKELY.

Referenced by instance().

+ Here is the caller graph for this function:

bool MIPS32InterruptManager::registerSyscallHandler ( Service_t  Service,
SyscallHandler pHandler 
)
virtual

Register a syscall handler

Parameters
[in]Servicethe service number you want to register
[in]pHandlerthe interrupt handler
Returns
true, if successfully registered, false otherwise

Implements SyscallManager.

Definition at line 135 of file mips32/InterruptManager.cc.

References UNLIKELY.

Referenced by instance().

+ Here is the caller graph for this function:

Member Data Documentation

InterruptHandler* MIPS32InterruptManager::m_DbgHandler[64]
private

The debugger interrupt handlers

Definition at line 87 of file kernel/core/processor/mips32/InterruptManager.h.

MIPS32InterruptManager MIPS32InterruptManager::m_Instance
staticprivate

The instance of the interrupt manager

Definition at line 93 of file kernel/core/processor/mips32/InterruptManager.h.

Referenced by instance().

SyscallHandler* MIPS32InterruptManager::m_SyscallHandler[SyscallManager::serviceEnd]
private

The syscall handlers

Definition at line 90 of file kernel/core/processor/mips32/InterruptManager.h.


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