pagetable.hh (10558:426665ec11a9) pagetable.hh (10905:a6ca6831e775)
1/*
2 * Copyright (c) 2010, 2012-2013 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

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

56{
57 VAddr(Addr a) { panic("not implemented yet."); }
58};
59
60
61// ITB/DTB page table entry
62struct PTE
63{
1/*
2 * Copyright (c) 2010, 2012-2013 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

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

56{
57 VAddr(Addr a) { panic("not implemented yet."); }
58};
59
60
61// ITB/DTB page table entry
62struct PTE
63{
64 void serialize(std::ostream &os)
64 void serialize(CheckpointOut &cp) const
65 {
66 panic("Need to implement PTE serialization\n");
67 }
68
65 {
66 panic("Need to implement PTE serialization\n");
67 }
68
69 void unserialize(Checkpoint *cp, const std::string &section)
69 void unserialize(CheckpointIn &cp)
70 {
71 panic("Need to implement PTE serialization\n");
72 }
73
74};
75
76// Lookup level
77enum LookupLevel {
78 L0 = 0, // AArch64 only
79 L1,
80 L2,
81 L3,
82 MAX_LOOKUP_LEVELS
83};
84
85// ITB/DTB table entry
70 {
71 panic("Need to implement PTE serialization\n");
72 }
73
74};
75
76// Lookup level
77enum LookupLevel {
78 L0 = 0, // AArch64 only
79 L1,
80 L2,
81 L3,
82 MAX_LOOKUP_LEVELS
83};
84
85// ITB/DTB table entry
86struct TlbEntry
86struct TlbEntry : public Serializable
87{
88 public:
89 enum class MemoryType : std::uint8_t {
90 StronglyOrdered,
91 Device,
92 Normal
93 };
94

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

279 print() const
280 {
281 return csprintf("%#x, asn %d vmn %d hyp %d ppn %#x size: %#x ap:%d "
282 "ns:%d nstid:%d g:%d el:%d", vpn << N, asid, vmid,
283 isHyp, pfn << N, size, ap, ns, nstid, global, el);
284 }
285
286 void
87{
88 public:
89 enum class MemoryType : std::uint8_t {
90 StronglyOrdered,
91 Device,
92 Normal
93 };
94

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

279 print() const
280 {
281 return csprintf("%#x, asn %d vmn %d hyp %d ppn %#x size: %#x ap:%d "
282 "ns:%d nstid:%d g:%d el:%d", vpn << N, asid, vmid,
283 isHyp, pfn << N, size, ap, ns, nstid, global, el);
284 }
285
286 void
287 serialize(std::ostream &os)
287 serialize(CheckpointOut &cp) const M5_ATTR_OVERRIDE
288 {
289 SERIALIZE_SCALAR(longDescFormat);
290 SERIALIZE_SCALAR(pfn);
291 SERIALIZE_SCALAR(size);
292 SERIALIZE_SCALAR(vpn);
293 SERIALIZE_SCALAR(asid);
294 SERIALIZE_SCALAR(vmid);
295 SERIALIZE_SCALAR(isHyp);

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

306 SERIALIZE_SCALAR(shareable);
307 SERIALIZE_SCALAR(outerShareable);
308 SERIALIZE_SCALAR(attributes);
309 SERIALIZE_SCALAR(xn);
310 SERIALIZE_SCALAR(pxn);
311 SERIALIZE_SCALAR(ap);
312 SERIALIZE_SCALAR(hap);
313 uint8_t domain_ = static_cast<uint8_t>(domain);
288 {
289 SERIALIZE_SCALAR(longDescFormat);
290 SERIALIZE_SCALAR(pfn);
291 SERIALIZE_SCALAR(size);
292 SERIALIZE_SCALAR(vpn);
293 SERIALIZE_SCALAR(asid);
294 SERIALIZE_SCALAR(vmid);
295 SERIALIZE_SCALAR(isHyp);

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

306 SERIALIZE_SCALAR(shareable);
307 SERIALIZE_SCALAR(outerShareable);
308 SERIALIZE_SCALAR(attributes);
309 SERIALIZE_SCALAR(xn);
310 SERIALIZE_SCALAR(pxn);
311 SERIALIZE_SCALAR(ap);
312 SERIALIZE_SCALAR(hap);
313 uint8_t domain_ = static_cast<uint8_t>(domain);
314 paramOut(os, "domain", domain_);
314 paramOut(cp, "domain", domain_);
315 }
316 void
315 }
316 void
317 unserialize(Checkpoint *cp, const std::string &section)
317 unserialize(CheckpointIn &cp) M5_ATTR_OVERRIDE
318 {
319 UNSERIALIZE_SCALAR(longDescFormat);
320 UNSERIALIZE_SCALAR(pfn);
321 UNSERIALIZE_SCALAR(size);
322 UNSERIALIZE_SCALAR(vpn);
323 UNSERIALIZE_SCALAR(asid);
324 UNSERIALIZE_SCALAR(vmid);
325 UNSERIALIZE_SCALAR(isHyp);

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

336 UNSERIALIZE_SCALAR(shareable);
337 UNSERIALIZE_SCALAR(outerShareable);
338 UNSERIALIZE_SCALAR(attributes);
339 UNSERIALIZE_SCALAR(xn);
340 UNSERIALIZE_SCALAR(pxn);
341 UNSERIALIZE_SCALAR(ap);
342 UNSERIALIZE_SCALAR(hap);
343 uint8_t domain_;
318 {
319 UNSERIALIZE_SCALAR(longDescFormat);
320 UNSERIALIZE_SCALAR(pfn);
321 UNSERIALIZE_SCALAR(size);
322 UNSERIALIZE_SCALAR(vpn);
323 UNSERIALIZE_SCALAR(asid);
324 UNSERIALIZE_SCALAR(vmid);
325 UNSERIALIZE_SCALAR(isHyp);

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

336 UNSERIALIZE_SCALAR(shareable);
337 UNSERIALIZE_SCALAR(outerShareable);
338 UNSERIALIZE_SCALAR(attributes);
339 UNSERIALIZE_SCALAR(xn);
340 UNSERIALIZE_SCALAR(pxn);
341 UNSERIALIZE_SCALAR(ap);
342 UNSERIALIZE_SCALAR(hap);
343 uint8_t domain_;
344 paramIn(cp, section, "domain", domain_);
344 paramIn(cp, "domain", domain_);
345 domain = static_cast<DomainType>(domain_);
346 }
347
348};
349
350
351
352}
353#endif // __ARCH_ARM_PAGETABLE_H__
354
345 domain = static_cast<DomainType>(domain_);
346 }
347
348};
349
350
351
352}
353#endif // __ARCH_ARM_PAGETABLE_H__
354