1/* 2 * Copyright (c) 2013 Andreas Sandberg 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; --- 1340 unchanged lines hidden (view full) --- 1349 pAddr = X86ISA::x86IOAddress(port); 1350 } 1351 1352 const MemCmd cmd(isWrite ? MemCmd::WriteReq : MemCmd::ReadReq); 1353 // Temporarily lock and migrate to the device event queue to 1354 // prevent races in multi-core mode. 1355 EventQueue::ScopedMigration migrate(deviceEventQueue()); 1356 for (int i = 0; i < count; ++i) { |
1357 RequestPtr io_req = std::make_shared<Request>( 1358 pAddr, kvm_run.io.size, 1359 Request::UNCACHEABLE, dataMasterId()); 1360 |
1361 io_req->setContext(tc->contextId()); 1362 1363 PacketPtr pkt = new Packet(io_req, cmd); 1364 1365 pkt->dataStatic(guestData); 1366 delay += dataPort.submitIO(pkt); 1367 1368 guestData += kvm_run.io.size; --- 266 unchanged lines hidden --- |