The Pedigree Project
0.1
|
#include <TlbManager.h>
Public Member Functions | |
void | initialise () |
void | interrupt (size_t interruptNumber, InterruptState &state) |
Static Public Member Functions | |
static MIPS32TlbManager & | instance () |
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 () |
A class for manipulating and refilling the translation lookaside buffer.
Definition at line 28 of file mips32/TlbManager.h.
|
private |
Default constructor.
Definition at line 36 of file TlbManager.cc.
|
private |
Destructor.
Definition at line 40 of file TlbManager.cc.
|
static |
Flushes the entire TLB
Referenced by initialise().
|
static |
Flushes the TLB of any entries with the given ASID.
|
static |
Returns the number of TLB entries.
Referenced by initialise().
void MIPS32TlbManager::initialise | ( | ) |
Initialises the TLB
Definition at line 44 of file TlbManager.cc.
References flush(), getNumEntries(), InterruptManager::instance(), m_nEntries, InterruptManager::registerInterruptHandler(), writeContext(), writePageMask(), and writeWired().
|
static |
Retrieves the singleton instance of this Tlb manager.
Definition at line 31 of file TlbManager.cc.
References m_Instance.
|
virtual |
Called when the handler is registered with the interrupt manager and the interrupt occurred
[in] | nInterruptNumber | the interrupt number |
[in] | state | reference 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 |
The assembler code for handling a TLB refill.
|
static |
Writes the given value into the Context register.
Referenced by initialise().
|
static |
Writes the given value into the PageMask register.
Referenced by initialise().
|
static |
Writes a random TLB entry
Referenced by interrupt().
|
static |
Writes a specific TLB entry
|
static |
Writes the given value into the Wired register.
Referenced by initialise().
|
staticprivate |
The singleton instance of this class.
Definition at line 81 of file mips32/TlbManager.h.
Referenced by instance().
|
private |
The number of entries in the TLB.
Definition at line 84 of file mips32/TlbManager.h.
Referenced by initialise().