1/* 2 * Copyright (c) 2007 The Hewlett-Packard Development Company 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 --- 485 unchanged lines hidden (view full) --- 494 walker->tlb->insert(entry.vaddr, entry); 495 endWalk(); 496 } else { 497 PacketPtr oldRead = read; 498 //If we didn't return, we're setting up another read. 499 Request::Flags flags = oldRead->req->getFlags(); 500 flags.set(Request::UNCACHEABLE, uncacheable); 501 RequestPtr request = |
502 new Request(nextRead, oldRead->getSize(), flags, walker->masterId); |
503 read = new Packet(request, MemCmd::ReadReq, Packet::Broadcast); 504 read->allocate(); 505 // If we need to write, adjust the read packet to write the modified 506 // value back to memory. 507 if (doWrite) { 508 write = oldRead; 509 write->set<uint64_t>(pte); 510 write->cmd = MemCmd::WriteReq; --- 53 unchanged lines hidden (view full) --- 564 } 565 566 nextState = Ready; 567 entry.vaddr = vaddr; 568 569 Request::Flags flags = Request::PHYSICAL; 570 if (cr3.pcd) 571 flags.set(Request::UNCACHEABLE); |
572 RequestPtr request = new Request(topAddr, dataSize, flags, walker->masterId); |
573 read = new Packet(request, MemCmd::ReadReq, Packet::Broadcast); 574 read->allocate(); 575} 576 577bool 578Walker::WalkerState::recvPacket(PacketPtr pkt) 579{ 580 if (pkt->isResponse() && !pkt->wasNacked()) { --- 134 unchanged lines hidden --- |