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

#include <DynamicLinker.h>

+ Inheritance diagram for DLTrapHandler:
+ Collaboration diagram for DLTrapHandler:

Public Member Functions

virtual bool trap (InterruptState &state, uintptr_t address, bool bIsWrite)
 

Static Public Member Functions

static DLTrapHandlerinstance ()
 

Private Member Functions

 DLTrapHandler ()
 
 ~DLTrapHandler ()
 

Static Private Attributes

static DLTrapHandler m_Instance
 

Detailed Description

Tiny class for dispatching MemoryTrap events to DynamicLinkers. A MemoryTrap event will occur when a page of an ELF has yet to be loaded.

Definition at line 129 of file DynamicLinker.h.

Constructor & Destructor Documentation

DLTrapHandler::DLTrapHandler ( )
private

Private constructor - does nothing.

Definition at line 444 of file DynamicLinker.cc.

References PageFaultHandler::instance(), and PageFaultHandler::registerHandler().

DLTrapHandler::~DLTrapHandler ( )
private

Private destructor - does nothing, not expected to be called.

Definition at line 449 of file DynamicLinker.cc.

Member Function Documentation

static DLTrapHandler& DLTrapHandler::instance ( )
inlinestatic

Retrieve the singleton DLTrapHandler instance.

Definition at line 133 of file DynamicLinker.h.

bool DLTrapHandler::trap ( InterruptState &  state,
uintptr_t  address,
bool  bIsWrite 
)
virtual

Trap event handler.

Parameters
addressThe address of the trap.
bIsWriteTrue if the trap was caused by a write, false if by a read.
Returns
True if the trap was handled successfully (and the handler can return), or false if another handler needs to be tried.

Implements MemoryTrapHandler.

Definition at line 453 of file DynamicLinker.cc.

References Processor::information(), KernelCoreSyscallManager::instance(), KernelCoreSyscallManager::link, KernelCoreSyscallManager::registerSyscall(), DynamicLinker::resolvePlt(), and DynamicLinker::trap().


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