31 #ifndef __ARCH_SPARC_TLB_HH__
32 #define __ARCH_SPARC_TLB_HH__
39 #include "params/SparcTLB.hh"
115 bool update_used =
true);
122 void insert(
Addr vpn,
int partition_id,
int context_id,
bool real,
161 panic(
"demapPage(Addr) is not implemented.\n");
168 Translation *translation,
Mode mode);
190 uint64_t
c0_config, uint64_t cX_tsb, uint64_t cX_config);
199 #endif // __ARCH_SPARC_TLB_HH__
void demapContext(int partition_id, int context_id)
Remove all entries that match a given context/partition id.
void writeSfsr(bool write, ContextType ct, bool se, FaultTypes ft, int asi)
Cycles is a wrapper class for representing cycle counts, i.e.
Fault translateInst(RequestPtr req, ThreadContext *tc)
Declaration of a request, the overall memory request consisting of the parts of the request that are ...
bool validVirtualAddress(Addr va, bool am)
Checks if the virtual address provided is a valid one.
uint64_t MakeTsbPtr(TsbPageSize ps, uint64_t tag_access, uint64_t c0_tsb, uint64_t c0_config, uint64_t cX_tsb, uint64_t cX_config)
TlbEntry * lookup(Addr va, int partition_id, bool real, int context_id=0, bool update_used=true)
lookup an entry in the TLB based on the partition id, and real bit if real is true or the partition i...
ThreadContext is the external interface to all thread state for anything outside of the CPU...
Cycles doMmuRegRead(ThreadContext *tc, Packet *pkt)
void unserialize(CheckpointIn &cp) override
Unserialize an object.
Fault translateAtomic(RequestPtr req, ThreadContext *tc, Mode mode)
RangeMap::iterator iterator
void takeOverFrom(BaseTLB *otlb) override
Take over from an old tlb context.
Cycles doMmuRegWrite(ThreadContext *tc, Packet *pkt)
std::list< TlbEntry * > freeList
void demapPage(Addr va, int partition_id, bool real, int context_id)
Remve all entries that match a certain partition id, (contextid), and va).
void flushAll() override
Remove all entries from the TLB.
Fault finalizePhysical(RequestPtr req, ThreadContext *tc, Mode mode) const
uint64_t Addr
Address type This will probably be moved somewhere else in the near future.
A Packet is used to encapsulate a transfer between two objects in the memory system (e...
void writeTagAccess(Addr va, int context)
Fault translateData(RequestPtr req, ThreadContext *tc, bool write)
void insert(Addr vpn, int partition_id, int context_id, bool real, const PageTableEntry &PTE, int entry=-1)
Insert a PTE into the TLB.
void GetTsbPtr(ThreadContext *tc, Addr addr, int ctx, Addr *ptrs)
std::ostream CheckpointOut
uint64_t TagRead(int entry)
Given an entry id, read that tlb entries' tag.
void serialize(CheckpointOut &cp) const override
Serialize an object.
void demapPage(Addr vaddr, uint64_t asn) override
uint64_t TteRead(int entry)
Give an entry id, read that tlb entries' tte.
Fault translateFunctional(RequestPtr req, ThreadContext *tc, Mode mode)
Stub function for compilation support with CheckerCPU.
void demapAll(int partition_id)
Remove all non-locked entries from the tlb that match partition id.
std::shared_ptr< FaultBase > Fault
void translateTiming(RequestPtr req, ThreadContext *tc, Translation *translation, Mode mode)