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 * --- 124 unchanged lines hidden (view full) --- 133 int size; 134 135 TlbEntry * tlb; 136 137 EntryList freeList; 138 EntryList entryList; 139 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); |
145 146 public: 147 148 void 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 { 157 public: 158 typedef X86ITBParams Params; 159 ITB(const Params *p) : TLB(p) 160 { 161 _allowNX = false; 162 } 163 |
164 Fault translateAtomic(RequestPtr req, ThreadContext *tc); 165 void translateTiming(RequestPtr req, ThreadContext *tc, 166 Translation *translation); |
167 168 friend class DTB; 169 }; 170 171 class DTB : public TLB 172 { 173 public: 174 typedef X86DTBParams Params; 175 DTB(const Params *p) : TLB(p) 176 { 177 _allowNX = true; 178 } |
179 Fault translateAtomic(RequestPtr req, ThreadContext *tc, bool write); 180 void translateTiming(RequestPtr req, ThreadContext *tc, 181 Translation *translation, bool write); |
182#if FULL_SYSTEM 183 Tick doMmuRegRead(ThreadContext *tc, Packet *pkt); 184 Tick doMmuRegWrite(ThreadContext *tc, Packet *pkt); 185#endif 186 187 // Checkpointing 188 virtual void serialize(std::ostream &os); 189 virtual void unserialize(Checkpoint *cp, const std::string §ion); 190 }; 191} 192 193#endif // __ARCH_X86_TLB_HH__ |