Cosmos/Tests/Cosmos.TestRunner.Core/Engine.Bochs.cs

39 lines
1.3 KiB
C#

using System;
using System.Collections.Specialized;
using System.IO;
using System.Threading;
using Cosmos.Build.Common;
using Cosmos.Debug.Common;
using Cosmos.Debug.VSDebugEngine.Host;
namespace Cosmos.TestRunner.Core
{
partial class Engine
{
private void RunIsoInBochs(string iso)
{
var xBochsConfig = Path.Combine(mBaseWorkingDirectory, "Kernel.bochsrc");
var xParams = new NameValueCollection();
xParams.Add(BuildProperties.EnableBochsDebugString, "false");
xParams.Add("ISOFile", iso);
xParams.Add(BuildProperties.VisualStudioDebugPortString, "Pipe: Cosmos\\Serial");
var xDebugConnector = new DebugConnectorPipeServer(DebugConnectorPipeServer.DefaultCosmosPipeName);
InitializeDebugConnector(xDebugConnector);
var xBochs = new Bochs(xParams, false, new FileInfo(xBochsConfig));
xBochs.OnShutDown = (a, b) =>
{
};
xBochs.RedirectOutput = true;
xBochs.LogError = s => OutputHandler.LogDebugMessage(s);
xBochs.LogOutput = s => OutputHandler.LogDebugMessage(s);
HandleRunning(xDebugConnector, xBochs);
}
private volatile bool mKernelRunning = true;
}
}