pagetable_walker.hh (8864:fe907afe14a3) pagetable_walker.hh (8922:17f037ad8918)
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

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

55class ThreadContext;
56
57namespace X86ISA
58{
59 class Walker : public MemObject
60 {
61 protected:
62 // Port for accessing memory
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

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

55class ThreadContext;
56
57namespace X86ISA
58{
59 class Walker : public MemObject
60 {
61 protected:
62 // Port for accessing memory
63 class WalkerPort : public Port
63 class WalkerPort : public MasterPort
64 {
65 public:
66 WalkerPort(const std::string &_name, Walker * _walker) :
64 {
65 public:
66 WalkerPort(const std::string &_name, Walker * _walker) :
67 Port(_name, _walker), walker(_walker)
67 MasterPort(_name, _walker), walker(_walker)
68 {}
69
70 protected:
71 Walker *walker;
72
73 bool recvTiming(PacketPtr pkt);
74 Tick recvAtomic(PacketPtr pkt);
75 void recvFunctional(PacketPtr pkt);
68 {}
69
70 protected:
71 Walker *walker;
72
73 bool recvTiming(PacketPtr pkt);
74 Tick recvAtomic(PacketPtr pkt);
75 void recvFunctional(PacketPtr pkt);
76 void recvRangeChange();
77 void recvRetry();
76 void recvRetry();
78 bool isSnooping() { return true; }
77 bool isSnooping() const { return true; }
79 };
80
81 friend class WalkerPort;
82 WalkerPort port;
83
84 // State to track each walk of the page table
85 class WalkerState : public FastAlloc
86 {

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

161 };
162
163 public:
164 // Kick off the state machine.
165 Fault start(ThreadContext * _tc, BaseTLB::Translation *translation,
166 RequestPtr req, BaseTLB::Mode mode);
167 Fault startFunctional(ThreadContext * _tc, Addr &addr,
168 Addr &pageSize, BaseTLB::Mode mode);
78 };
79
80 friend class WalkerPort;
81 WalkerPort port;
82
83 // State to track each walk of the page table
84 class WalkerState : public FastAlloc
85 {

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

160 };
161
162 public:
163 // Kick off the state machine.
164 Fault start(ThreadContext * _tc, BaseTLB::Translation *translation,
165 RequestPtr req, BaseTLB::Mode mode);
166 Fault startFunctional(ThreadContext * _tc, Addr &addr,
167 Addr &pageSize, BaseTLB::Mode mode);
169 Port *getPort(const std::string &if_name, int idx = -1);
168 MasterPort &getMasterPort(const std::string &if_name, int idx = -1);
170
171 protected:
172 // The TLB we're supposed to load.
173 TLB * tlb;
174 System * sys;
175 MasterID masterId;
176
177 // Functions for dealing with packets.

--- 28 unchanged lines hidden ---
169
170 protected:
171 // The TLB we're supposed to load.
172 TLB * tlb;
173 System * sys;
174 MasterID masterId;
175
176 // Functions for dealing with packets.

--- 28 unchanged lines hidden ---