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 --- 31 unchanged lines hidden (view full) --- 40#ifndef __ARCH_X86_PAGE_TABLE_WALKER_HH__ 41#define __ARCH_X86_PAGE_TABLE_WALKER_HH__ 42 43#include <vector> 44 45#include "arch/x86/pagetable.hh" 46#include "arch/x86/tlb.hh" 47#include "base/types.hh" |
48#include "mem/packet.hh" 49#include "params/X86PagetableWalker.hh" |
50#include "sim/clocked_object.hh" |
51#include "sim/faults.hh" 52#include "sim/system.hh" 53 54class ThreadContext; 55 56namespace X86ISA 57{ |
58 class Walker : public ClockedObject |
59 { 60 protected: 61 // Port for accessing memory 62 class WalkerPort : public MasterPort 63 { 64 public: 65 WalkerPort(const std::string &_name, Walker * _walker) : 66 MasterPort(_name, _walker), walker(_walker) --- 129 unchanged lines hidden (view full) --- 196 197 const Params * 198 params() const 199 { 200 return static_cast<const Params *>(_params); 201 } 202 203 Walker(const Params *params) : |
204 ClockedObject(params), port(name() + ".port", this), |
205 funcState(this, NULL, NULL, true), tlb(NULL), sys(params->system), 206 masterId(sys->getMasterId(this)), 207 numSquashable(params->num_squash_per_cycle), 208 startWalkWrapperEvent([this]{ startWalkWrapper(); }, name()) 209 { 210 } 211 }; 212} 213#endif // __ARCH_X86_PAGE_TABLE_WALKER_HH__ |