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

#include <PageFaultHandler.h>

+ Inheritance diagram for PageFaultHandler:
+ Collaboration diagram for PageFaultHandler:

Public Member Functions

bool initialise ()
 
void registerHandler (MemoryTrapHandler *pHandler)
 
virtual void interrupt (size_t interruptNumber, InterruptState &state)
 

Static Public Member Functions

static PageFaultHandlerinstance ()
 

Private Member Functions

 PageFaultHandler () INITIALISATION_ONLY
 
 PageFaultHandler (const PageFaultHandler &)
 
virtual ~InterruptHandler ()
 

Private Attributes

List< MemoryTrapHandler * > m_Handlers
 

Static Private Attributes

static EXPORTED_PUBLIC PageFaultHandler m_Instance
 

Detailed Description

The x86 Page Fault Exception handler.

Definition at line 47 of file PageFaultHandler.h.

Constructor & Destructor Documentation

PageFaultHandler::PageFaultHandler ( )
private

The default constructor.

Definition at line 40 of file armv7/PageFaultHandler.cc.

PageFaultHandler::PageFaultHandler ( const PageFaultHandler )
private

The copy constructor. Note not implemented.

Member Function Documentation

bool PageFaultHandler::initialise ( )

Register the PageFaultHandler with the InterruptManager.

Returns
true if sucessful, false otherwise.

Definition at line 31 of file armv7/PageFaultHandler.cc.

Referenced by Processor::initialisationDone().

+ Here is the caller graph for this function:

static PageFaultHandler& PageFaultHandler::instance ( )
inlinestatic

Get the PageFaultHandler instance

Returns
the PageFaultHandler instance.

Definition at line 52 of file PageFaultHandler.h.

Referenced by DLTrapHandler::DLTrapHandler(), Processor::initialisationDone(), and MemoryMapManager::MemoryMapManager().

+ Here is the caller graph for this function:

void PageFaultHandler::interrupt ( size_t  nInterruptNumber,
InterruptState &  state 
)
virtual

Called when the handler is registered with the interrupt manager and the interrupt occurred

Parameters
[in]nInterruptNumberthe interrupt number
[in]statereference to the state before the interrupt
Todo:
probably can just skip checking for traps across the entire kernel address space?

Implements InterruptHandler.

Definition at line 36 of file armv7/PageFaultHandler.cc.

void PageFaultHandler::registerHandler ( MemoryTrapHandler pHandler)
inline

Registers a trap handler.

Definition at line 62 of file PageFaultHandler.h.

References INITIALISATION_ONLY.

Referenced by DLTrapHandler::DLTrapHandler(), and MemoryMapManager::MemoryMapManager().

+ Here is the caller graph for this function:

Member Data Documentation

PageFaultHandler PageFaultHandler::m_Instance
staticprivate

The PageFaultHandler instance

Todo:
Implement

Definition at line 83 of file PageFaultHandler.h.


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