Go to the documentation of this file.
41 #ifndef __ARCH_GENERIC_TLB_HH__
42 #define __ARCH_GENERIC_TLB_HH__
44 #include <type_traits>
48 #include "enums/TypeTLB.hh"
50 #include "params/BaseTLB.hh"
81 panic(
"Not implemented.\n");
141 using T = std::underlying_type_t<TypeTLB>;
142 return static_cast<T
>(lhs) &
static_cast<T
>(rhs);
147 #endif // __ARCH_GENERIC_TLB_HH__
virtual void takeOverFrom(BaseTLB *otlb)=0
Take over from an old tlb context.
BaseTLB * nextLevel() const
virtual Fault finalizePhysical(const RequestPtr &req, ThreadContext *tc, BaseMMU::Mode mode) const =0
Do post-translation physical address finalization.
ThreadContext is the external interface to all thread state for anything outside of the CPU.
std::shared_ptr< FaultBase > Fault
void memInvalidate()
Invalidate the contents of memory buffers.
std::shared_ptr< Request > RequestPtr
virtual void demapPage(Addr vaddr, uint64_t asn)=0
auto operator&(TypeTLB lhs, TypeTLB rhs)
Implementing the "&" bitwise operator for TypeTLB allows us to handle TypeTLB::unified efficiently.
virtual Fault translateFunctional(const RequestPtr &req, ThreadContext *tc, BaseMMU::Mode mode)
Abstract superclass for simulation objects.
virtual void translateTiming(const RequestPtr &req, ThreadContext *tc, BaseMMU::Translation *translation, BaseMMU::Mode mode)=0
uint64_t Addr
Address type This will probably be moved somewhere else in the near future.
BaseTLB(const BaseTLBParams &p)
virtual Fault translateAtomic(const RequestPtr &req, ThreadContext *tc, BaseMMU::Mode mode)=0
Ports are used to interface objects to each other.
Reference material can be found at the JEDEC website: UFS standard http://www.jedec....
virtual Port * getTableWalkerPort()
Get the table walker port if present.
virtual void flushAll()=0
Remove all entries from the TLB.
#define panic(...)
This implements a cprintf based panic() function.
Generated on Wed May 4 2022 12:13:35 for gem5 by doxygen 1.8.17