1/* 2 * Copyright (c) 2001-2005 The Regents of The University of Michigan 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; --- 1349 unchanged lines hidden (view full) --- 1358 i = freeList.begin(); 1359 while (i != freeList.end()) { 1360 free_list[cntr++] = ((size_t)*i - (size_t)tlb)/ sizeof(TlbEntry); 1361 i++; 1362 } 1363 SERIALIZE_SCALAR(cntr); 1364 SERIALIZE_ARRAY(free_list, cntr); 1365 |
1366 SERIALIZE_SCALAR(c0_tsb_ps0); 1367 SERIALIZE_SCALAR(c0_tsb_ps1); 1368 SERIALIZE_SCALAR(c0_config); 1369 SERIALIZE_SCALAR(cx_tsb_ps0); 1370 SERIALIZE_SCALAR(cx_tsb_ps1); 1371 SERIALIZE_SCALAR(cx_config); 1372 SERIALIZE_SCALAR(sfsr); 1373 SERIALIZE_SCALAR(tag_access); |
1374 1375 for (int x = 0; x < size; x++) { 1376 nameOut(os, csprintf("%s.PTE%d", name(), x)); 1377 tlb[x].serialize(os); 1378 } |
1379} 1380 1381void 1382TLB::unserialize(Checkpoint *cp, const std::string §ion) 1383{ 1384 int oldSize; 1385 1386 paramIn(cp, section, "size", oldSize); --- 6 unchanged lines hidden (view full) --- 1393 UNSERIALIZE_SCALAR(cntr); 1394 1395 int *free_list = (int*)malloc(sizeof(int) * cntr); 1396 freeList.clear(); 1397 UNSERIALIZE_ARRAY(free_list, cntr); 1398 for (int x = 0; x < cntr; x++) 1399 freeList.push_back(&tlb[free_list[x]]); 1400 |
1401 UNSERIALIZE_SCALAR(c0_tsb_ps0); 1402 UNSERIALIZE_SCALAR(c0_tsb_ps1); 1403 UNSERIALIZE_SCALAR(c0_config); 1404 UNSERIALIZE_SCALAR(cx_tsb_ps0); 1405 UNSERIALIZE_SCALAR(cx_tsb_ps1); 1406 UNSERIALIZE_SCALAR(cx_config); 1407 UNSERIALIZE_SCALAR(sfsr); 1408 UNSERIALIZE_SCALAR(tag_access); |
1409 1410 lookupTable.clear(); 1411 for (int x = 0; x < size; x++) { 1412 tlb[x].unserialize(cp, csprintf("%s.PTE%d", section, x)); 1413 if (tlb[x].valid) 1414 lookupTable.insert(tlb[x].range, &tlb[x]); 1415 1416 } |
1417} 1418 1419void 1420DTB::serialize(std::ostream &os) 1421{ 1422 TLB::serialize(os); 1423 SERIALIZE_SCALAR(sfar); 1424} --- 21 unchanged lines hidden --- |