tlb.hh (5894:8091ac99341a) | tlb.hh (5895:569e3b31a868) |
---|---|
1/* 2 * Copyright (c) 2007 The Hewlett-Packard Development Company 3 * All rights reserved. 4 * 5 * Redistribution and use of this software in source and binary forms, 6 * with or without modification, are permitted provided that the 7 * following conditions are met: 8 * --- 73 unchanged lines hidden (view full) --- 82 83 static const unsigned StoreCheck = 1 << NUM_SEGMENTREGS; 84 85 class TLB; 86 87 class TLB : public BaseTLB 88 { 89 protected: | 1/* 2 * Copyright (c) 2007 The Hewlett-Packard Development Company 3 * All rights reserved. 4 * 5 * Redistribution and use of this software in source and binary forms, 6 * with or without modification, are permitted provided that the 7 * following conditions are met: 8 * --- 73 unchanged lines hidden (view full) --- 82 83 static const unsigned StoreCheck = 1 << NUM_SEGMENTREGS; 84 85 class TLB; 86 87 class TLB : public BaseTLB 88 { 89 protected: |
90 friend class FakeITLBFault; 91 friend class FakeDTLBFault; | 90 friend class Walker; |
92 93 typedef std::list<TlbEntry *> EntryList; 94 95 bool _allowNX; 96 uint32_t configAddress; 97 98 public: 99 bool allowNX() const --- 13 unchanged lines hidden (view full) --- 113 protected: 114 115 EntryList::iterator lookupIt(Addr va, bool update_lru = true); 116 117#if FULL_SYSTEM 118 protected: 119 120 Walker * walker; | 91 92 typedef std::list<TlbEntry *> EntryList; 93 94 bool _allowNX; 95 uint32_t configAddress; 96 97 public: 98 bool allowNX() const --- 13 unchanged lines hidden (view full) --- 112 protected: 113 114 EntryList::iterator lookupIt(Addr va, bool update_lru = true); 115 116#if FULL_SYSTEM 117 protected: 118 119 Walker * walker; |
121 122 void walk(ThreadContext * _tc, Addr vaddr, bool write, bool execute); | |
123#endif 124 125 public: 126 void invalidateAll(); 127 128 void invalidateNonGlobal(); 129 130 void demapPage(Addr va, uint64_t asn); 131 132 protected: 133 int size; 134 135 TlbEntry * tlb; 136 137 EntryList freeList; 138 EntryList entryList; 139 | 120#endif 121 122 public: 123 void invalidateAll(); 124 125 void invalidateNonGlobal(); 126 127 void demapPage(Addr va, uint64_t asn); 128 129 protected: 130 int size; 131 132 TlbEntry * tlb; 133 134 EntryList freeList; 135 EntryList entryList; 136 |
140 template<class TlbFault> 141 Fault translateAtomic(RequestPtr req, ThreadContext *tc, 142 bool write, bool execute); 143 void translateTiming(RequestPtr req, ThreadContext *tc, 144 Translation *translation, bool write, bool execute); | 137 Fault translate(RequestPtr req, ThreadContext *tc, 138 Translation *translation, bool write, bool execute, 139 bool &delayedResponse, bool timing); |
145 146 public: 147 | 140 141 public: 142 |
148 void insert(Addr vpn, TlbEntry &entry); | 143 TlbEntry * insert(Addr vpn, TlbEntry &entry); |
149 150 // Checkpointing 151 virtual void serialize(std::ostream &os); 152 virtual void unserialize(Checkpoint *cp, const std::string §ion); 153 }; 154 155 class ITB : public TLB 156 { --- 37 unchanged lines hidden --- | 144 145 // Checkpointing 146 virtual void serialize(std::ostream &os); 147 virtual void unserialize(Checkpoint *cp, const std::string §ion); 148 }; 149 150 class ITB : public TLB 151 { --- 37 unchanged lines hidden --- |