Go to the documentation of this file.
29 #ifndef __ARCH_SPARC_TLB_HH__
30 #define __ARCH_SPARC_TLB_HH__
37 #include "params/SparcTLB.hh"
118 bool update_used =
true);
125 void insert(
Addr vpn,
int partition_id,
int context_id,
bool real,
164 panic(
"demapPage(Addr) is not implemented.\n");
175 Translation *translation,
Mode mode)
override;
195 uint64_t
c0_config, uint64_t cX_tsb, uint64_t cX_config);
204 #endif // __ARCH_SPARC_TLB_HH__
uint64_t TteRead(int entry)
Give an entry id, read that tlb entries' tte.
void demapContext(int partition_id, int context_id)
Remove all entries that match a given context/partition id.
void demapPage(Addr va, int partition_id, bool real, int context_id)
Remve all entries that match a certain partition id, (contextid), and va).
std::list< TlbEntry * > freeList
void GetTsbPtr(ThreadContext *tc, Addr addr, int ctx, Addr *ptrs)
Fault translateAtomic(const RequestPtr &req, ThreadContext *tc, Mode mode) override
void demapPage(Addr vaddr, uint64_t asn) override
Fault translateFunctional(const RequestPtr &req, ThreadContext *tc, Mode mode) override
Fault translateData(const RequestPtr &req, ThreadContext *tc, bool write)
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...
std::shared_ptr< Request > RequestPtr
Cycles doMmuRegWrite(ThreadContext *tc, Packet *pkt)
void writeSfsr(bool write, ContextType ct, bool se, FaultTypes ft, int asi)
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)
Cycles doMmuRegRead(ThreadContext *tc, Packet *pkt)
ThreadContext is the external interface to all thread state for anything outside of the CPU.
void flushAll() override
Remove all entries from the TLB.
void insert(Addr vpn, int partition_id, int context_id, bool real, const PageTableEntry &PTE, int entry=-1)
Insert a PTE into the TLB.
std::shared_ptr< FaultBase > Fault
void serialize(CheckpointOut &cp) const override
Serialize an object.
void takeOverFrom(BaseTLB *otlb) override
Take over from an old tlb context.
void demapAll(int partition_id)
Remove all non-locked entries from the tlb that match partition id.
RangeMap::iterator iterator
uint64_t Addr
Address type This will probably be moved somewhere else in the near future.
void unserialize(CheckpointIn &cp) override
Unserialize an object.
void translateTiming(const RequestPtr &req, ThreadContext *tc, Translation *translation, Mode mode) override
Fault translateInst(const RequestPtr &req, ThreadContext *tc)
A Packet is used to encapsulate a transfer between two objects in the memory system (e....
void writeTagAccess(Addr va, int context)
bool validVirtualAddress(Addr va, bool am)
Checks if the virtual address provided is a valid one.
Cycles is a wrapper class for representing cycle counts, i.e.
const Addr StartVAddrHole
std::ostream CheckpointOut
Fault finalizePhysical(const RequestPtr &req, ThreadContext *tc, Mode mode) const override
Do post-translation physical address finalization.
uint64_t TagRead(int entry)
Given an entry id, read that tlb entries' tag.
#define ULL(N)
uint64_t constant
#define panic(...)
This implements a cprintf based panic() function.
Generated on Wed Sep 30 2020 14:01:59 for gem5 by doxygen 1.8.17