multi_level_page_table.hh (12406:86bde4a026b5) multi_level_page_table.hh (12432:2480d8b432f5)
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,
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);
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__
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__