Deleted Added
sdiff udiff text old ( 9542:683991c46ac8 ) new ( 9701:f02f3b6562d5 )
full compact
1/*
2 * Copyright (c) 2007 The Hewlett-Packard Development Company
3 * All rights reserved.
4 *
5 * The license below extends only to copyright in the software and shall
6 * not be construed as granting a license to any other intellectual
7 * property including but not limited to intellectual property relating
8 * to a hardware implementation of the functionality of the software

--- 73 unchanged lines hidden (view full) ---

82 };
83
84 friend class WalkerPort;
85 WalkerPort port;
86
87 // State to track each walk of the page table
88 class WalkerState
89 {
90 friend class Walker;
91 private:
92 enum State {
93 Ready,
94 Waiting,
95 // Long mode
96 LongPML4, LongPDP, LongPD, LongPTE,
97 // PAE legacy mode
98 PAEPDP, PAEPD, PAEPTE,

--- 73 unchanged lines hidden (view full) ---

172 PortID idx = InvalidPortID);
173
174 protected:
175 // The TLB we're supposed to load.
176 TLB * tlb;
177 System * sys;
178 MasterID masterId;
179
180 // The number of outstanding walks that can be squashed per cycle.
181 unsigned numSquashable;
182
183 // Wrapper for checking for squashes before starting a translation.
184 void startWalkWrapper();
185
186 // Functions for dealing with packets.
187 bool recvTimingResp(PacketPtr pkt);
188 void recvRetry();
189 bool sendTiming(WalkerState * sendingState, PacketPtr pkt);
190
191 public:
192
193 void setTLB(TLB * _tlb)

--- 7 unchanged lines hidden (view full) ---

201 params() const
202 {
203 return static_cast<const Params *>(_params);
204 }
205
206 Walker(const Params *params) :
207 MemObject(params), port(name() + ".port", this),
208 funcState(this, NULL, NULL, true), tlb(NULL), sys(params->system),
209 masterId(sys->getMasterId(name())),
210 numSquashable(params->num_squash_per_cycle)
211 {
212 }
213 };
214}
215#endif // __ARCH_X86_PAGE_TABLE_WALKER_HH__