table_walker.hh (7694:de057cccee82) | table_walker.hh (7728:cf9db1c47a77) |
---|---|
1/* 2 * Copyright (c) 2010 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 --- 306 unchanged lines hidden (view full) --- 315 316 /** Queue of requests that need processing first level translation */ 317 std::list<WalkerState *> stateQueueL1; 318 319 /** Queue of requests that have passed first level translation and 320 * require an additional level. */ 321 std::list<WalkerState *> stateQueueL2; 322 | 1/* 2 * Copyright (c) 2010 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 --- 306 unchanged lines hidden (view full) --- 315 316 /** Queue of requests that need processing first level translation */ 317 std::list<WalkerState *> stateQueueL1; 318 319 /** Queue of requests that have passed first level translation and 320 * require an additional level. */ 321 std::list<WalkerState *> stateQueueL2; 322 |
323 /** Queue of requests that have passed are waiting because the walker is 324 * currently busy. */ 325 std::list<WalkerState *> pendingQueue;; 326 327 |
|
323 /** Port to issue translation requests from */ 324 DmaPort *port; 325 326 /** TLB that is initiating these table walks */ 327 TLB *tlb; 328 329 /** Cached copy of the sctlr as it existed when translation began */ 330 SCTLR sctlr; 331 332 WalkerState *currState; 333 | 328 /** Port to issue translation requests from */ 329 DmaPort *port; 330 331 /** TLB that is initiating these table walks */ 332 TLB *tlb; 333 334 /** Cached copy of the sctlr as it existed when translation began */ 335 SCTLR sctlr; 336 337 WalkerState *currState; 338 |
339 /** If a timing translation is currently in progress */ 340 bool pending; 341 |
|
334 public: 335 typedef ArmTableWalkerParams Params; 336 TableWalker(const Params *p); 337 virtual ~TableWalker(); 338 339 const Params * 340 params() const 341 { --- 15 unchanged lines hidden (view full) --- 357 void doL1Descriptor(); 358 void doL1DescriptorWrapper(); 359 EventWrapper<TableWalker, &TableWalker::doL1DescriptorWrapper> doL1DescEvent; 360 361 void doL2Descriptor(); 362 void doL2DescriptorWrapper(); 363 EventWrapper<TableWalker, &TableWalker::doL2DescriptorWrapper> doL2DescEvent; 364 | 342 public: 343 typedef ArmTableWalkerParams Params; 344 TableWalker(const Params *p); 345 virtual ~TableWalker(); 346 347 const Params * 348 params() const 349 { --- 15 unchanged lines hidden (view full) --- 365 void doL1Descriptor(); 366 void doL1DescriptorWrapper(); 367 EventWrapper<TableWalker, &TableWalker::doL1DescriptorWrapper> doL1DescEvent; 368 369 void doL2Descriptor(); 370 void doL2DescriptorWrapper(); 371 EventWrapper<TableWalker, &TableWalker::doL2DescriptorWrapper> doL2DescEvent; 372 |
373 Fault processWalk(); 374 void processWalkWrapper(); 375 EventWrapper<TableWalker, &TableWalker::processWalkWrapper> doProcessEvent; |
|
365 | 376 |
377 void nextWalk(ThreadContext *tc); |
|
366}; 367 368 369} // namespace ArmISA 370 371#endif //__ARCH_ARM_TABLE_WALKER_HH__ 372 | 378}; 379 380 381} // namespace ArmISA 382 383#endif //__ARCH_ARM_TABLE_WALKER_HH__ 384 |