pagetable_walker.hh (9542:683991c46ac8) pagetable_walker.hh (9701:f02f3b6562d5)
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 {
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;
90 private:
91 enum State {
92 Ready,
93 Waiting,
94 // Long mode
95 LongPML4, LongPDP, LongPD, LongPTE,
96 // PAE legacy mode
97 PAEPDP, PAEPD, PAEPTE,

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

171 PortID idx = InvalidPortID);
172
173 protected:
174 // The TLB we're supposed to load.
175 TLB * tlb;
176 System * sys;
177 MasterID masterId;
178
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
179 // Functions for dealing with packets.
180 bool recvTimingResp(PacketPtr pkt);
181 void recvRetry();
182 bool sendTiming(WalkerState * sendingState, PacketPtr pkt);
183
184 public:
185
186 void setTLB(TLB * _tlb)

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

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