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

#include <TlbManager.h>

+ Inheritance diagram for MIPS32TlbManager:
+ Collaboration diagram for MIPS32TlbManager:

Public Member Functions

void initialise ()
 
void interrupt (size_t interruptNumber, InterruptState &state)
 

Static Public Member Functions

static MIPS32TlbManagerinstance ()
 
static void interruptAsm ()
 
static void writeTlb (uintptr_t entryHi, uintptr_t entryLo0, uintptr_t entryLo1)
 
static void writeTlbWired (uintptr_t tlbEntry, uintptr_t entryHi, uintptr_t entryLo0, uintptr_t entryLo1)
 
static void flush (uintptr_t numEntries)
 
static void flushAsid (uintptr_t numEntries, uintptr_t asid)
 
static void writeContext (uintptr_t context)
 
static void writeWired (uintptr_t wired)
 
static void writePageMask (uintptr_t pageMask)
 
static uintptr_t getNumEntries ()
 

Private Member Functions

 MIPS32TlbManager ()
 
 ~MIPS32TlbManager ()
 

Private Attributes

uint32_t m_nEntries
 

Static Private Attributes

static MIPS32TlbManager m_Instance
 

Additional Inherited Members

- Protected Member Functions inherited from InterruptHandler
virtual ~InterruptHandler ()
 

Detailed Description

A class for manipulating and refilling the translation lookaside buffer.

Definition at line 28 of file mips32/TlbManager.h.

Constructor & Destructor Documentation

MIPS32TlbManager::MIPS32TlbManager ( )
private

Default constructor.

Definition at line 36 of file TlbManager.cc.

MIPS32TlbManager::~MIPS32TlbManager ( )
private

Destructor.

Definition at line 40 of file TlbManager.cc.

Member Function Documentation

static void MIPS32TlbManager::flush ( uintptr_t  numEntries)
static

Flushes the entire TLB

Note
Defined in asm/Tlb.s

Referenced by initialise().

+ Here is the caller graph for this function:

static void MIPS32TlbManager::flushAsid ( uintptr_t  numEntries,
uintptr_t  asid 
)
static

Flushes the TLB of any entries with the given ASID.

Note
Defined in asm/Tlb.s
static uintptr_t MIPS32TlbManager::getNumEntries ( )
static

Returns the number of TLB entries.

Note
Defined in asm/Tlb.s

Referenced by initialise().

+ Here is the caller graph for this function:

void MIPS32TlbManager::initialise ( )
MIPS32TlbManager & MIPS32TlbManager::instance ( )
static

Retrieves the singleton instance of this Tlb manager.

Definition at line 31 of file TlbManager.cc.

References m_Instance.

void MIPS32TlbManager::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

Implements InterruptHandler.

Definition at line 70 of file TlbManager.cc.

References VirtualAddressSpace::getKernelAddressSpace(), MIPS32VirtualAddressSpace::getPageTableChunk(), Hex, Debugger::instance(), NOTICE, panic(), Debugger::start(), and writeTlb().

static void MIPS32TlbManager::interruptAsm ( )
static

The assembler code for handling a TLB refill.

Note
Defined in asm/Tlb.s
static void MIPS32TlbManager::writeContext ( uintptr_t  context)
static

Writes the given value into the Context register.

Note
Defined in asm/Tlb.s

Referenced by initialise().

+ Here is the caller graph for this function:

static void MIPS32TlbManager::writePageMask ( uintptr_t  pageMask)
static

Writes the given value into the PageMask register.

Note
Defined in asm/Tlb.s

Referenced by initialise().

+ Here is the caller graph for this function:

static void MIPS32TlbManager::writeTlb ( uintptr_t  entryHi,
uintptr_t  entryLo0,
uintptr_t  entryLo1 
)
static

Writes a random TLB entry

Note
Defined in asm/Tlb.s

Referenced by interrupt().

+ Here is the caller graph for this function:

static void MIPS32TlbManager::writeTlbWired ( uintptr_t  tlbEntry,
uintptr_t  entryHi,
uintptr_t  entryLo0,
uintptr_t  entryLo1 
)
static

Writes a specific TLB entry

Note
Defined in asm/Tlb.s
static void MIPS32TlbManager::writeWired ( uintptr_t  wired)
static

Writes the given value into the Wired register.

Note
Defined in asm/Tlb.s

Referenced by initialise().

+ Here is the caller graph for this function:

Member Data Documentation

MIPS32TlbManager MIPS32TlbManager::m_Instance
staticprivate

The singleton instance of this class.

Definition at line 81 of file mips32/TlbManager.h.

Referenced by instance().

uint32_t MIPS32TlbManager::m_nEntries
private

The number of entries in the TLB.

Definition at line 84 of file mips32/TlbManager.h.

Referenced by initialise().


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