1/* 2 * Copyright (c) 2014 Advanced Micro Devices, Inc. 3 * All rights reserved. 4 * 5 * Redistribution and use in source and binary forms, with or without 6 * modification, are permitted provided that the following conditions are 7 * met: redistributions of source code must retain the above copyright 8 * notice, this list of conditions and the following disclaimer; --- 126 unchanged lines hidden (view full) --- 135 * walking the page table 136 * @return PTE_addr The address of the found PTE 137 * @retval true if the page table walk has succeded, false otherwhise 138 */ 139 bool walk(Addr vaddr, bool allocate, Addr &PTE_addr); 140 141public: 142 MultiLevelPageTable(const std::string &__name, uint64_t _pid, |
143 System *_sys, Addr pageSize); |
144 ~MultiLevelPageTable(); 145 146 void initState(ThreadContext* tc) override; 147 148 void map(Addr vaddr, Addr paddr, int64_t size, 149 uint64_t flags = 0) override; 150 void remap(Addr vaddr, int64_t size, Addr new_vaddr) override; 151 void unmap(Addr vaddr, int64_t size) override; 152 bool isUnmapped(Addr vaddr, int64_t size) override; 153 bool lookup(Addr vaddr, TheISA::TlbEntry &entry) override; 154 void serialize(CheckpointOut &cp) const override; 155 void unserialize(CheckpointIn &cp) override; 156}; 157#endif // __MEM_MULTI_LEVEL_PAGE_TABLE_HH__ |