table_walker.hh (8922:17f037ad8918) | table_walker.hh (9015:7f4d25789dc4) |
---|---|
1/* | 1/* |
2 * Copyright (c) 2010 ARM Limited | 2 * Copyright (c) 2010-2012 ARM Limited |
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 9 * licensed hereunder. You may use the software subject to the license 10 * terms below provided that you ensure that this notice is replicated --- 35 unchanged lines hidden (view full) --- 46#include "arch/arm/tlb.hh" 47#include "dev/io_device.hh" 48#include "mem/mem_object.hh" 49#include "mem/request.hh" 50#include "params/ArmTableWalker.hh" 51#include "sim/eventq.hh" 52#include "sim/fault_fwd.hh" 53 | 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 9 * licensed hereunder. You may use the software subject to the license 10 * terms below provided that you ensure that this notice is replicated --- 35 unchanged lines hidden (view full) --- 46#include "arch/arm/tlb.hh" 47#include "dev/io_device.hh" 48#include "mem/mem_object.hh" 49#include "mem/request.hh" 50#include "params/ArmTableWalker.hh" 51#include "sim/eventq.hh" 52#include "sim/fault_fwd.hh" 53 |
54class DmaPort; | |
55class ThreadContext; 56 57namespace ArmISA { 58class Translation; 59class TLB; 60 61class TableWalker : public MemObject 62{ --- 192 unchanged lines hidden (view full) --- 255 /** This entry needs to be written back to memory */ 256 bool dirty() const 257 { 258 return _dirty; 259 } 260 261 }; 262 | 54class ThreadContext; 55 56namespace ArmISA { 57class Translation; 58class TLB; 59 60class TableWalker : public MemObject 61{ --- 192 unchanged lines hidden (view full) --- 254 /** This entry needs to be written back to memory */ 255 bool dirty() const 256 { 257 return _dirty; 258 } 259 260 }; 261 |
262 protected: 263 264 /** 265 * A snooping DMA port that currently does nothing besides 266 * extending the DMA port to accept snoops without complaining. 267 */ 268 class SnoopingDmaPort : public DmaPort 269 { 270 271 protected: 272 273 virtual void recvTimingSnoopReq(PacketPtr pkt) 274 { } 275 276 virtual Tick recvAtomicSnoop(PacketPtr pkt) 277 { return 0; } 278 279 virtual void recvFunctionalSnoop(PacketPtr pkt) 280 { } 281 282 virtual bool isSnooping() const { return true; } 283 284 public: 285 286 /** 287 * A snooping DMA port merely calls the construtor of the DMA 288 * port. 289 */ 290 SnoopingDmaPort(MemObject *dev, System *s, Tick min_backoff, 291 Tick max_backoff) : 292 DmaPort(dev, s, min_backoff, max_backoff) 293 { } 294 }; 295 |
|
263 struct WalkerState //: public SimObject 264 { 265 /** Thread context that we're doing the walk for */ 266 ThreadContext *tc; 267 268 /** Request that is currently being serviced */ 269 RequestPtr req; 270 --- 53 unchanged lines hidden (view full) --- 324 std::list<WalkerState *> stateQueueL2; 325 326 /** Queue of requests that have passed are waiting because the walker is 327 * currently busy. */ 328 std::list<WalkerState *> pendingQueue; 329 330 331 /** Port to issue translation requests from */ | 296 struct WalkerState //: public SimObject 297 { 298 /** Thread context that we're doing the walk for */ 299 ThreadContext *tc; 300 301 /** Request that is currently being serviced */ 302 RequestPtr req; 303 --- 53 unchanged lines hidden (view full) --- 357 std::list<WalkerState *> stateQueueL2; 358 359 /** Queue of requests that have passed are waiting because the walker is 360 * currently busy. */ 361 std::list<WalkerState *> pendingQueue; 362 363 364 /** Port to issue translation requests from */ |
332 DmaPort port; | 365 SnoopingDmaPort port; |
333 334 /** TLB that is initiating these table walks */ 335 TLB *tlb; 336 337 /** Cached copy of the sctlr as it existed when translation began */ 338 SCTLR sctlr; 339 340 WalkerState *currState; --- 52 unchanged lines hidden --- | 366 367 /** TLB that is initiating these table walks */ 368 TLB *tlb; 369 370 /** Cached copy of the sctlr as it existed when translation began */ 371 SCTLR sctlr; 372 373 WalkerState *currState; --- 52 unchanged lines hidden --- |