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 --- |