Deleted Added
sdiff udiff text old ( 10157:5c2ecad1a3c9 ) new ( 10653:e3fc6bc7f97e )
full compact
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;

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

549
550void
551X86KvmCPU::startup()
552{
553 BaseKvmCPU::startup();
554
555 updateCPUID();
556
557 // TODO: Do we need to create an identity mapped TSS area? We
558 // should call kvm.vm.setTSSAddress() here in that case. It should
559 // only be needed for old versions of the virtualization
560 // extensions. We should make sure that the identity range is
561 // reserved in the e820 memory map in that case.
562}
563
564void

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

1339 (port & 0x3));
1340 } else {
1341 pAddr = X86ISA::x86IOAddress(port);
1342 }
1343 } else {
1344 pAddr = X86ISA::x86IOAddress(port);
1345 }
1346
1347 Request io_req(pAddr, kvm_run.io.size, Request::UNCACHEABLE,
1348 dataMasterId());
1349 io_req.setThreadContext(tc->contextId(), 0);
1350
1351 const MemCmd cmd(isWrite ? MemCmd::WriteReq : MemCmd::ReadReq);
1352 // Temporarily lock and migrate to the event queue of the
1353 // VM. This queue is assumed to "own" all devices we need to
1354 // access if running in multi-core mode.
1355 EventQueue::ScopedMigration migrate(vm.eventQueue());
1356 for (int i = 0; i < count; ++i) {
1357 Packet pkt(&io_req, cmd);

--- 271 unchanged lines hidden ---