tlb.hh (5891:73084c6bb183) | tlb.hh (5894:8091ac99341a) |
---|---|
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> | 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, | 141 Fault translateAtomic(RequestPtr req, ThreadContext *tc, |
142 bool write, bool execute); | 142 bool write, bool execute); |
143 void translateTiming(RequestPtr req, ThreadContext *tc, 144 Translation *translation, bool write, bool execute); |
|
143 144 public: 145 146 void insert(Addr vpn, TlbEntry &entry); 147 148 // Checkpointing 149 virtual void serialize(std::ostream &os); 150 virtual void unserialize(Checkpoint *cp, const std::string §ion); 151 }; 152 153 class ITB : public TLB 154 { 155 public: 156 typedef X86ITBParams Params; 157 ITB(const Params *p) : TLB(p) 158 { 159 _allowNX = false; 160 } 161 | 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 |
162 Fault translateAtomic(RequestPtr &req, ThreadContext *tc); | 164 Fault translateAtomic(RequestPtr req, ThreadContext *tc); 165 void translateTiming(RequestPtr req, ThreadContext *tc, 166 Translation *translation); |
163 164 friend class DTB; 165 }; 166 167 class DTB : public TLB 168 { 169 public: 170 typedef X86DTBParams Params; 171 DTB(const Params *p) : TLB(p) 172 { 173 _allowNX = true; 174 } | 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 } |
175 Fault translateAtomic(RequestPtr &req, ThreadContext *tc, bool write); | 179 Fault translateAtomic(RequestPtr req, ThreadContext *tc, bool write); 180 void translateTiming(RequestPtr req, ThreadContext *tc, 181 Translation *translation, bool write); |
176#if FULL_SYSTEM 177 Tick doMmuRegRead(ThreadContext *tc, Packet *pkt); 178 Tick doMmuRegWrite(ThreadContext *tc, Packet *pkt); 179#endif 180 181 // Checkpointing 182 virtual void serialize(std::ostream &os); 183 virtual void unserialize(Checkpoint *cp, const std::string §ion); 184 }; 185} 186 187#endif // __ARCH_X86_TLB_HH__ | 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__ |