ETISS 0.8.0
Extendable Translating Instruction Set Simulator (version 0.8.0)
|
Classes | |
class | DMMUWrapper |
struct | DMMUWrapperSystem |
class | MMU |
class | PTE |
Page Table Entry (PTE) defines the composition of Page Frame Number (PFN) and relavant flags. More... | |
class | PTEFormat |
class | PTEFormatBuilder |
Sigleton builder utility to build up customized PTE format. More... | |
class | TLB |
Typedefs | |
typedef int32_t(* | handler_ptr) (int32_t fault, MMU *mmu, uint64_t vma, MM_ACCESS access) |
typedef std::map< std::string, std::pair< uint32_t, uint32_t > > | PTEFormatMap |
Singleton to represent specific PTE format, every PTE uses this singleton to parse raw PTE value into PPN and protection flags, read/write PPN or flags. More... | |
Enumerations | |
enum | MM_ACCESS { R_ACCESS , W_ACCESS , X_ACCESS } |
Functions | |
int32_t | tlb_miss_handler (int32_t fault, MMU *mmu, uint64_t vma, MM_ACCESS access) |
void | DUMP_MMU (MMU *mmu) |
static etiss_int32 | iread (void *handle, ETISS_CPU *cpu, etiss_uint64 addr, etiss_uint32 length) |
static etiss_int32 | iwrite (void *handle, ETISS_CPU *cpu, etiss_uint64 addr, etiss_uint8 *buffer, etiss_uint32 length) |
static etiss_int32 | dread (void *handle, ETISS_CPU *cpu, etiss_uint64 addr, etiss_uint8 *buffer, etiss_uint32 length) |
static etiss_int32 | dwrite (void *handle, ETISS_CPU *cpu, etiss_uint64 addr, etiss_uint8 *buffer, etiss_uint32 length) |
static etiss_int32 | dbg_read (void *handle, etiss_uint64 addr, etiss_uint8 *buffer, etiss_uint32 length) |
static etiss_int32 | dbg_write (void *handle, etiss_uint64 addr, etiss_uint8 *buffer, etiss_uint32 length) |
static void | syncTime (void *handle, ETISS_CPU *cpu) |
static int32_t | page_fault_ni_ (int32_t fault, MMU *mmu, uint64_t, MM_ACCESS) |
Variables | |
MM_EXPORT const int32_t | NOERROR |
MM_EXPORT const int32_t | PTEOVERLAP |
MM_EXPORT const int32_t | TLBMISS |
MM_EXPORT const int32_t | PTENOTEXISTED |
MM_EXPORT const int32_t | TLBISFULL |
MM_EXPORT const int32_t | PROTECTIONVIALATION |
MM_EXPORT std::string | PAGE_FAULT_MSG [] |
MM_EXPORT handler_ptr | page_fault_handler [] |
Definition at line 72 of file PageFaultVector.h.
typedef std::map<std::string, std::pair<uint32_t, uint32_t> > etiss::mm::PTEFormatMap |
Singleton to represent specific PTE format, every PTE uses this singleton to parse raw PTE value into PPN and protection flags, read/write PPN or flags.
Definition at line 62 of file PTEFormat.h.
enum etiss::mm::MM_ACCESS |
Enumerator | |
---|---|
R_ACCESS | |
W_ACCESS | |
X_ACCESS |
Definition at line 62 of file PageFaultVector.h.
|
static |
Definition at line 131 of file DMMUWrapper.cpp.
References ETISS_System::dbg_read, ETISS_System::handle, int32_t, length(), etiss::mm::DMMUWrapperSystem::orig, etiss::mm::DMMUWrapperSystem::this_, uint64_t, unlikely, and X_ACCESS.
Referenced by etiss::mm::DMMUWrapper::wrap().
|
static |
Definition at line 147 of file DMMUWrapper.cpp.
References ETISS_System::dbg_write, ETISS_System::handle, int32_t, length(), etiss::log(), etiss::mm::DMMUWrapperSystem::orig, etiss::mm::DMMUWrapperSystem::this_, uint64_t, unlikely, etiss::VERBOSE, and W_ACCESS.
Referenced by etiss::mm::DMMUWrapper::wrap().
|
static |
Definition at line 97 of file DMMUWrapper.cpp.
References ETISS_System::dread, ETISS_System::handle, int32_t, length(), etiss::mm::DMMUWrapperSystem::orig, R_ACCESS, etiss::mm::DMMUWrapperSystem::this_, uint64_t, and unlikely.
Referenced by etiss::mm::DMMUWrapper::wrap().
void etiss::mm::DUMP_MMU | ( | MMU * | mmu | ) |
Definition at line 244 of file MMU.cpp.
References etiss::mm::MMU::Dump().
Referenced by page_fault_ni_().
|
static |
Definition at line 114 of file DMMUWrapper.cpp.
References ETISS_System::dwrite, ETISS_System::handle, int32_t, length(), etiss::mm::DMMUWrapperSystem::orig, etiss::mm::DMMUWrapperSystem::this_, uint64_t, unlikely, and W_ACCESS.
Referenced by etiss::mm::DMMUWrapper::wrap().
|
static |
Definition at line 59 of file DMMUWrapper.cpp.
References ETISS_System::handle, int32_t, ETISS_System::iread, length(), etiss::log(), etiss::mm::DMMUWrapperSystem::orig, R_ACCESS, etiss::mm::DMMUWrapperSystem::this_, uint64_t, unlikely, and etiss::VERBOSE.
Referenced by etiss::mm::DMMUWrapper::wrap().
|
static |
Definition at line 78 of file DMMUWrapper.cpp.
References ETISS_System::handle, int32_t, ETISS_System::iwrite, length(), etiss::log(), etiss::mm::DMMUWrapperSystem::orig, etiss::mm::DMMUWrapperSystem::this_, uint64_t, unlikely, etiss::VERBOSE, and W_ACCESS.
Referenced by etiss::mm::DMMUWrapper::wrap().
Definition at line 71 of file PageFaultVector.cpp.
References DUMP_MMU(), etiss::FATALERROR, etiss::log(), NOERROR, and PAGE_FAULT_MSG.
|
static |
Definition at line 166 of file DMMUWrapper.cpp.
References ETISS_System::handle, etiss::mm::DMMUWrapperSystem::orig, and ETISS_System::syncTime.
Referenced by etiss::mm::DMMUWrapper::wrap().
Definition at line 221 of file MMU.cpp.
References etiss::mm::MMU::HasPageTableWalker(), int32_t, NOERROR, R_ACCESS, W_ACCESS, etiss::mm::MMU::WalkPageTable(), and X_ACCESS.
Referenced by etiss::mm::MMU::MMU().
Referenced by etiss::mm::TLB< EntryNum >::AddPTE(), etiss::mm::MMU::AddTLBEntry(), etiss::SimpleMemSystem::dbus_access(), etiss_CPUCore_handleException(), etiss::mm::TLB< EntryNum >::EvictPTE(), etiss::plugin::errorInjection::BlockAccurateHandler::execute(), etiss::InterruptHandler::execute(), TracePrinter::execute(), etiss::CPUCore::execute(), etiss::plugin::gdb::Server::handlePacket(), etiss::SimpleMemSystem::iread(), etiss::plugin::fault::SwitchSystem::iread(), etiss::mm::TLB< EntryNum >::Lookup(), main(), page_fault_ni_(), etiss::plugin::gdb::Server::postMemAccessCallback(), etiss::plugin::gdb::Server::preInstructionCallback(), etiss::interfaces::Delegate::read(), tlb_miss_handler(), etiss::interfaces::SimpleInstructionInjector< T >::toFunction(), etiss::mm::MMU::Translate(), etiss::Translation::translateBlock(), etiss::interfaces::WishboneBus< BOOLSIG, VECTORSIG, instrBus, flipEndianess, bytewidth, VECTORSIGSTORAGETYPE >::update(), etiss::mm::TLB< EntryNum >::UpdatePTE(), and etiss::interfaces::Delegate::write().
handler_ptr etiss::mm::page_fault_handler |
Definition at line 84 of file PageFaultVector.cpp.
std::string etiss::mm::PAGE_FAULT_MSG |
Definition at line 62 of file PageFaultVector.cpp.
Referenced by page_fault_ni_().
Referenced by etiss::mm::TLB< EntryNum >::EvictPTE(), and etiss::mm::TLB< EntryNum >::UpdatePTE().
Referenced by etiss::mm::TLB< EntryNum >::AddPTE(), and etiss::mm::MMU::AddTLBEntryMap().
Referenced by etiss::mm::TLB< EntryNum >::AddPTE().
Referenced by etiss::mm::TLB< EntryNum >::Lookup(), and etiss::mm::MMU::MMU().