void SysMainMemory::DecommitAll() { if (!m_ee.IsCommitted() && !m_iop.IsCommitted() && !m_vu.IsCommitted()) return; Console.WriteLn( Color_Blue, "Decommitting host memory for virtual systems..." ); ConsoleIndentScope indent(1); m_ee.Decommit(); m_iop.Decommit(); m_vu.Decommit(); closeNewVif(0); closeNewVif(1); vtlb_Core_Free(); }
void SysMainMemory::DecommitAll() { if (!m_ee.IsCommitted() && !m_iop.IsCommitted() && !m_vu.IsCommitted()) return; Console.WriteLn( Color_Blue, "Decommitting host memory for virtual systems..." ); ConsoleIndentScope indent(1); // On linux, the MTVU isn't empty and the thread still uses the m_ee/m_vu memory vu1Thread.WaitVU(); // The EE thread must be stopped here command mustn't be send // to the ring. Let's call it an extra safety valve :) vu1Thread.Reset(); m_ee.Decommit(); m_iop.Decommit(); m_vu.Decommit(); closeNewVif(0); closeNewVif(1); vtlb_Core_Free(); }