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