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 §ion) | 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 §ion) | 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 |