summaryrefslogtreecommitdiff
path: root/src/sim/tlb.cc
diff options
context:
space:
mode:
authorGabe Black <gblack@eecs.umich.edu>2007-08-26 20:33:57 -0700
committerGabe Black <gblack@eecs.umich.edu>2007-08-26 20:33:57 -0700
commit9b49a78cfdc0bd6f8afdb0d066ea39778095d7ac (patch)
treeb4a977c8d7379ac552d245847825a73b61bf8c5b /src/sim/tlb.cc
parent80d51650c8bce1503e5ce3877f3bfe21d3e57d45 (diff)
downloadgem5-9b49a78cfdc0bd6f8afdb0d066ea39778095d7ac.tar.xz
Address translation: Make the page table more flexible.
The page table now stores actual page table entries. It is still a templated class here, but this will be corrected in the near future. --HG-- extra : convert_revision : 804dcc6320414c2b3ab76a74a15295bd24e1d13d
Diffstat (limited to 'src/sim/tlb.cc')
-rw-r--r--src/sim/tlb.cc22
1 files changed, 9 insertions, 13 deletions
diff --git a/src/sim/tlb.cc b/src/sim/tlb.cc
index 9c3166280..5ceec637e 100644
--- a/src/sim/tlb.cc
+++ b/src/sim/tlb.cc
@@ -34,21 +34,17 @@
#include "sim/tlb.hh"
Fault
-GenericITB::translate(RequestPtr &req, ThreadContext *tc)
+GenericTLBBase::translate(RequestPtr req, ThreadContext * tc)
{
#if FULL_SYSTEM
- panic("Generic ITB translation shouldn't be used in full system mode.\n");
+ panic("Generic translation shouldn't be used in full system mode.\n");
#else
- return tc->getProcessPtr()->pTable->translate(req);
-#endif
-}
+ Process * p = tc->getProcessPtr();
-Fault
-GenericDTB::translate(RequestPtr &req, ThreadContext *tc, bool write)
-{
-#if FULL_SYSTEM
- panic("Generic DTB translation shouldn't be used in full system mode.\n");
-#else
- return tc->getProcessPtr()->pTable->translate(req);
+ Fault fault = p->pTable->translate(req);
+ if(fault != NoFault)
+ return fault;
+
+ return NoFault;
#endif
-};
+}