page_table.hh (11168:f98eb2da15a4) page_table.hh (11169:44b5c183c3cd)
1/*
2 * Copyright (c) 2014 Advanced Micro Devices, Inc.
3 * Copyright (c) 2003 The Regents of The University of Michigan
4 * All rights reserved.
5 *
6 * Redistribution and use in source and binary forms, with or without
7 * modification, are permitted provided that the following conditions are
8 * met: redistributions of source code must retain the above copyright

--- 197 unchanged lines hidden (view full) ---

206
207 public:
208
209 FuncPageTable(const std::string &__name, uint64_t _pid,
210 Addr _pageSize = TheISA::PageBytes);
211
212 ~FuncPageTable();
213
1/*
2 * Copyright (c) 2014 Advanced Micro Devices, Inc.
3 * Copyright (c) 2003 The Regents of The University of Michigan
4 * All rights reserved.
5 *
6 * Redistribution and use in source and binary forms, with or without
7 * modification, are permitted provided that the following conditions are
8 * met: redistributions of source code must retain the above copyright

--- 197 unchanged lines hidden (view full) ---

206
207 public:
208
209 FuncPageTable(const std::string &__name, uint64_t _pid,
210 Addr _pageSize = TheISA::PageBytes);
211
212 ~FuncPageTable();
213
214 void initState(ThreadContext* tc)
214 void initState(ThreadContext* tc) override
215 {
216 }
217
218 void map(Addr vaddr, Addr paddr, int64_t size,
215 {
216 }
217
218 void map(Addr vaddr, Addr paddr, int64_t size,
219 uint64_t flags = 0);
220 void remap(Addr vaddr, int64_t size, Addr new_vaddr);
221 void unmap(Addr vaddr, int64_t size);
219 uint64_t flags = 0) override;
220 void remap(Addr vaddr, int64_t size, Addr new_vaddr) override;
221 void unmap(Addr vaddr, int64_t size) override;
222
223 /**
224 * Check if any pages in a region are already allocated
225 * @param vaddr The starting virtual address of the region.
226 * @param size The length of the region.
227 * @return True if no pages in the region are mapped.
228 */
222
223 /**
224 * Check if any pages in a region are already allocated
225 * @param vaddr The starting virtual address of the region.
226 * @param size The length of the region.
227 * @return True if no pages in the region are mapped.
228 */
229 bool isUnmapped(Addr vaddr, int64_t size);
229 bool isUnmapped(Addr vaddr, int64_t size) override;
230
231 /**
232 * Lookup function
233 * @param vaddr The virtual address.
234 * @return entry The page table entry corresponding to vaddr.
235 */
230
231 /**
232 * Lookup function
233 * @param vaddr The virtual address.
234 * @return entry The page table entry corresponding to vaddr.
235 */
236 bool lookup(Addr vaddr, TheISA::TlbEntry &entry);
236 bool lookup(Addr vaddr, TheISA::TlbEntry &entry) override;
237
238 void serialize(CheckpointOut &cp) const override;
239 void unserialize(CheckpointIn &cp) override;
240};
241
242/**
243 * Faux page table class indended to stop the usage of
244 * an architectural page table, when there is none defined

--- 13 unchanged lines hidden ---
237
238 void serialize(CheckpointOut &cp) const override;
239 void unserialize(CheckpointIn &cp) override;
240};
241
242/**
243 * Faux page table class indended to stop the usage of
244 * an architectural page table, when there is none defined

--- 13 unchanged lines hidden ---